<> NetFx40_PInvokeStackResilience element
Hiermee geeft u op of de runtime automatisch onjuiste declaraties voor aanroepen van het platform tijdens runtime corrigeert, ten koste van tragere overgangen tussen beheerde en onbeheerde code.
<configuratie>
<Runtime>
<NetFx40_PInvokeStackResilience>
Syntaxis
<NetFx40_PInvokeStackResilience enabled="1|0"/>
Kenmerken en elementen
In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven.
Kenmerken
Kenmerk | Beschrijving |
---|---|
enabled |
Vereist kenmerk. Hiermee geeft u op of de runtime onjuiste declaraties voor platformaanroepen detecteert en de stack automatisch tijdens runtime op 32-bits platforms corrigeert. |
kenmerk ingeschakeld
Weergegeven als | Beschrijving |
---|---|
0 |
De runtime maakt gebruik van de snellere interop marshalling-architectuur die is geïntroduceerd in .NET Framework 4, die geen onjuiste platformaanroepen detecteert en corrigeert. Dit is de standaardinstelling. |
1 |
De runtime maakt gebruik van tragere overgangen waarmee onjuiste platformaanroepen worden gedetecteerd en opgelost. |
Onderliggende elementen
Geen.
Bovenliggende elementen
Element | Beschrijving |
---|---|
configuration |
Het hoofdelement in elk configuratiebestand dat wordt gebruikt door de algemene taalruntime en .NET Framework-toepassingen. |
runtime |
Bevat informatie over opties voor runtime-initialisatie. |
Opmerkingen
Met dit element kunt u sneller interop marshalling ruilen voor runtimetolerantie tegen onjuiste declaraties voor platformaanroepen.
Vanaf .NET Framework 4 biedt een gestroomlijnde interop marshallingarchitectuur een aanzienlijke prestatieverbetering voor overgangen van beheerde code naar onbeheerde code. In eerdere versies van .NET Framework heeft de marshallinglaag onjuiste platformaanroepen gedetecteerd op 32-bits platforms en de stack automatisch hersteld. De nieuwe marshallarchitectuur elimineert deze stap. Als gevolg hiervan zijn overgangen zeer snel, maar een onjuiste declaratie voor het aanroepen van het platform kan leiden tot een programmafout.
Om het gemakkelijk te maken om onjuiste declaraties tijdens de ontwikkeling te detecteren, is de foutopsporingservaring van Visual Studio verbeterd. De PInvokeStackImbalance Managed Debugging Assistant (MDA) geeft u een melding over onjuiste declaraties voor platformaanroepen wanneer uw toepassing wordt uitgevoerd met het gekoppelde foutopsporingsprogramma.
Voor scenario's waarin uw toepassing onderdelen gebruikt die u niet opnieuw kunt compileren en die onjuiste declaraties voor platformaanroepen hebben, kunt u het NetFx40_PInvokeStackResilience
element gebruiken. Als u dit element toevoegt aan uw toepassingsconfiguratiebestand, kiest enabled="1"
u voor een compatibiliteitsmodus met het gedrag van eerdere versies van .NET Framework, ten koste van tragere overgangen. Assembly's die zijn gecompileerd op basis van eerdere versies van .NET Framework, worden automatisch gekozen voor deze compatibiliteitsmodus en hebben dit element niet nodig.
Configuratiebestand
Dit element kan alleen worden gebruikt in het configuratiebestand van de toepassing.
Opmerking
In het volgende voorbeeld ziet u hoe u zich kunt aanmelden voor verbeterde tolerantie ten opzichte van onjuiste platformaanroepen voor een toepassing, ten koste van tragere overgangen tussen beheerde en onbeheerde code.
<configuration>
<runtime>
<NetFx40_PInvokeStackResilience enabled="1"/>
</runtime>
</configuration>