Delen via


<> 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>

Zie ook