<> NetFx40_PInvokeStackResilience element
Hiermee geeft u op of de runtime automatisch onjuiste platformaanroepdeclaraties tijdens runtime oplost, ten koste van tragere overgangen tussen beheerde en onbeheerde code.
<configuratie>
<Runtime>
<NetFx40_PInvokeStackResilience>
Syntax
<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 platformaanroepdeclaraties detecteert en de stack automatisch corrigeert tijdens runtime op 32-bits platforms. |
ingeschakeld kenmerk
Waarde | Beschrijving |
---|---|
0 |
De runtime maakt gebruik van de snellere interop marshalling-architectuur die is geïntroduceerd in de .NET Framework 4, waarmee onjuiste aanroepdeclaraties voor platformen niet worden gedetecteerd en opgelost. Dit is de standaardinstelling. |
1 |
De runtime maakt gebruik van tragere overgangen waarmee onjuiste declaraties voor platformaanroepen worden gedetecteerd en opgelost. |
Onderliggende elementen
Geen.
Bovenliggende elementen
Element | Beschrijving |
---|---|
configuration |
Het hoofdelement in elk configuratiebestand dat wordt gebruikt door de common language runtime en .NET Framework toepassingen. |
runtime |
Bevat informatie over opties voor runtime-initialisatie. |
Opmerkingen
Met dit element kunt u snellere interop marshalling ruilen voor runtime-tolerantie tegen onjuiste declaraties voor platformaanroepen.
Vanaf de .NET Framework 4 biedt een gestroomlijnde interop marshalling-architectuur een aanzienlijke prestatieverbetering voor overgangen van beheerde code naar onbeheerde code. In eerdere versies van de .NET Framework heeft de marshalllaag onjuiste platformaanroepdeclaraties op 32-bits platforms gedetecteerd en de stack automatisch hersteld. De nieuwe marshallarchitectuur elimineert deze stap. Als gevolg hiervan zijn overgangen zeer snel, maar een onjuiste aanroepdeclaratie van het platform kan een programmafout veroorzaken.
Om het gemakkelijker te maken om onjuiste declaraties tijdens de ontwikkeling te detecteren, is de foutopsporingservaring van Visual Studio verbeterd. De PInvokeStackImbalance Managed Debugging Assistant (MDA) meldt u over onjuiste declaraties voor platformaanroepen wanneer uw toepassing wordt uitgevoerd met het foutopsporingsprogramma bijgevoegd.
Als u scenario's wilt oplossen 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 het configuratiebestand van uw toepassing met enabled="1"
kiest u voor een compatibiliteitsmodus met het gedrag van eerdere versies van de .NET Framework, ten koste van tragere overgangen. Assembly's die zijn gecompileerd op basis van eerdere versies van de .NET Framework worden automatisch in deze compatibiliteitsmodus opgenomen en hebben dit element niet nodig.
Configuratiebestand
Dit element kan alleen worden gebruikt in het configuratiebestand van de toepassing.
Voorbeeld
In het volgende voorbeeld ziet u hoe u kunt kiezen voor verbeterde tolerantie tegen onjuiste platformaanroepdeclaraties voor een toepassing, ten koste van tragere overgangen tussen beheerde en onbeheerde code.
<configuration>
<runtime>
<NetFx40_PInvokeStackResilience enabled="1"/>
</runtime>
</configuration>
Zie ook
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor