<> NetFx40_PInvokeStackResilience element
Anger om körningen automatiskt åtgärdar felaktiga plattformsanropsdeklarationer vid körning, på bekostnad av långsammare övergångar mellan hanterad och ohanterad kod.
<konfiguration>
<Runtime>
<NetFx40_PInvokeStackResilience>
Syntax
<NetFx40_PInvokeStackResilience enabled="1|0"/>
Attribut och element
I följande avsnitt beskrivs attribut, underordnade element och överordnade element.
Attribut
Attribut | beskrivning |
---|---|
enabled |
Obligatoriskt attribut. Anger om körningen identifierar felaktiga plattformsanropsdeklarationer och automatiskt åtgärdar stacken vid körning på 32-bitarsplattformar. |
aktiverat attribut
Värde | beskrivning |
---|---|
0 |
Körningen använder den snabbare interop marshalling-arkitekturen som introducerades i .NET Framework 4, som inte identifierar och åtgärdar felaktiga plattformsanropsdeklarationer. Det här är standardinställningen. |
1 |
Körningen använder långsammare övergångar som identifierar och åtgärdar felaktiga plattformsanropsdeklarationer. |
Underordnade element
Inga.
Överordnade element
Element | Description |
---|---|
configuration |
Rotelementet i varje konfigurationsfil som används av vanliga språkkörnings- och .NET Framework-program. |
runtime |
Innehåller information om initieringsalternativ för körning. |
Kommentarer
Med det här elementet kan du handla snabbare interop marshalling för körningsresiliens mot felaktiga plattformsanropsdeklarationer.
Från och med .NET Framework 4 ger en strömlinjeformad interop marshalling-arkitektur en betydande prestandaförbättring för övergångar från hanterad kod till ohanterad kod. I tidigare versioner av .NET Framework upptäckte marshallinglagret felaktiga plattformsanropsdeklarationer på 32-bitarsplattformar och fixade automatiskt stacken. Den nya marshallarkitekturen eliminerar det här steget. Därför är övergångar mycket snabba, men en felaktig plattformsanropsdeklaration kan orsaka ett programfel.
För att göra det enkelt att identifiera felaktiga deklarationer under utvecklingen har Visual Studio-felsökningsupplevelsen förbättrats. PInvokeStackImbalance managed debugging assistant (MDA) meddelar dig om felaktiga plattformsanropsdeklarationer när programmet körs med felsökningsprogrammet kopplat.
Om du vill hantera scenarier där ditt program använder komponenter som du inte kan kompilera om och som har felaktiga plattformsanropsdeklarationer kan du använda elementet NetFx40_PInvokeStackResilience
. Lägga till det här elementet i programkonfigurationsfilen med enabled="1"
opts i ett kompatibilitetsläge med beteendet för tidigare versioner av .NET Framework, på bekostnad av långsammare övergångar. Sammansättningar som har kompilerats mot tidigare versioner av .NET Framework väljs automatiskt i det här kompatibilitetsläget och behöver inte det här elementet.
Konfigurationsfil
Det här elementet kan endast användas i programkonfigurationsfilen.
Exempel
I följande exempel visas hur du väljer ökad motståndskraft mot felaktig plattform som anropar deklarationer för ett program, på bekostnad av långsammare övergångar mellan hanterad och ohanterad kod.
<configuration>
<runtime>
<NetFx40_PInvokeStackResilience enabled="1"/>
</runtime>
</configuration>