<> NetFx40_PInvokeStackResilience – element

Určuje, jestli modul runtime automaticky opraví nesprávné deklarace volání platformy za běhu za cenu pomalejších přechodů mezi spravovaným a nespravovaným kódem.

<Konfigurace>
  <Runtime>
    <NetFx40_PInvokeStackResilience>

Syntax

<NetFx40_PInvokeStackResilience  enabled="1|0"/>

Atributy a elementy

Následující části popisují atributy, podřízené prvky a nadřazené prvky.

Atributy

Atribut Popis
enabled Požadovaný atribut.

Určuje, jestli modul runtime rozpozná nesprávné deklarace volání platformy a automaticky opraví zásobník za běhu na 32bitových platformách.

Atribut enabled

Hodnota Popis
0 Modul runtime používá rychlejší architekturu zařazování komunikace zavedenou v rozhraní .NET Framework 4, která nerozpozná a neopravuje nesprávné deklarace volání platformy. Tato možnost je výchozí.
1 Modul runtime používá pomalejší přechody, které zjišťují a opravují nesprávné deklarace volání platformy.

Podřízené elementy

Žádné

Nadřazené elementy

Element Popis
configuration Kořenový prvek v každém konfiguračním souboru, který je používán modulem Common Language Runtime (CLR) a aplikacemi rozhraní .NET Framework.
runtime Obsahuje informace o možnostech inicializace modulu runtime.

Poznámky

Tento prvek umožňuje vyměnit rychlejší zařazování interoperability za účelem odolnosti za běhu proti nesprávným deklaracím volání platformy.

Počínaje rozhraním .NET Framework 4 poskytuje zjednodušená architektura zařazování komunikace významné zlepšení výkonu pro přechody ze spravovaného kódu na nespravovaný kód. V dřívějších verzích rozhraní .NET Framework vrstva zařazování zjistila nesprávné deklarace platformy vyvolání na 32bitových platformách a automaticky opravila zásobník. Nová architektura zařazování tento krok eliminuje. V důsledku toho jsou přechody velmi rychlé, ale nesprávná deklarace vyvolání platformy může způsobit selhání programu.

Abychom usnadnili rozpoznání nesprávných deklarací během vývoje, vylepšili jsme ladicí prostředí sady Visual Studio. Pomocník spravovaného ladění (MDA) pInvokeStackImbalance vás upozorní na nesprávné deklarace vyvolání platformy, když je aplikace spuštěná s připojeným ladicím programem.

Chcete-li vyřešit scénáře, kdy aplikace používá komponenty, které nelze znovu zkompilovat a které mají nesprávné deklarace volání platformy, můžete použít NetFx40_PInvokeStackResilience element . Přidáním tohoto prvku do konfiguračního souboru aplikace s enabled="1" se rozhodnete pro režim kompatibility s chováním starších verzí rozhraní .NET Framework za cenu pomalejších přechodů. Sestavení, která byla zkompilována proti dřívějším verzím rozhraní .NET Framework, jsou automaticky přihlášeny do tohoto režimu kompatibility a nepotřebují tento prvek.

Konfigurační soubor

Tento prvek lze použít pouze v konfiguračním souboru aplikace.

Příklad

Následující příklad ukazuje, jak se přihlásit ke zvýšení odolnosti proti nesprávným deklaracím volání platformy pro aplikaci za cenu pomalejších přechodů mezi spravovaným a nespravovaným kódem.

<configuration>
   <runtime>
      <NetFx40_PInvokeStackResilience enabled="1"/>
   </runtime>
</configuration>

Viz také