<> NetFx40_PInvokeStackResilience, element

Określa, czy środowisko uruchomieniowe automatycznie naprawia nieprawidłowe deklaracje wywoływania platformy w czasie wykonywania, kosztem wolniejszych przejść między zarządzanym i niezarządzanym kodem.

<Konfiguracji>
  <Środowiska wykonawczego>
    <NetFx40_PInvokeStackResilience>

Składnia

<NetFx40_PInvokeStackResilience  enabled="1|0"/>

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.

Atrybuty

Atrybut Opis
enabled Atrybut wymagany.

Określa, czy środowisko uruchomieniowe wykrywa nieprawidłowe deklaracje wywoływania platformy i automatycznie naprawia stos w czasie wykonywania na platformach 32-bitowych.

Atrybut włączony

Wartość Opis
0 Środowisko uruchomieniowe używa szybszej architektury międzyoperacyjnej wprowadzonej w .NET Framework 4, która nie wykrywa i nie naprawia niepoprawnych deklaracji wywołań platformy. Jest to opcja domyślna.
1 Środowisko uruchomieniowe używa wolniejszych przejść, które wykrywają i naprawiają nieprawidłowe deklaracje wywołań platformy.

Elementy podrzędne

Brak.

Elementy nadrzędne

Element Opis
configuration Element główny w każdym pliku konfiguracji używanym przez środowisko uruchomieniowe języka wspólnego i aplikacje programu .NET Framework.
runtime Zawiera informacje dotyczące opcji inicjowania środowiska uruchomieniowego.

Uwagi

Ten element umożliwia szybsze łączenie międzyoperacyjności w celu uzyskania odporności w czasie wykonywania na nieprawidłowe deklaracje wywołań platformy.

Począwszy od .NET Framework 4, usprawniona architektura międzyoperacyjna zapewnia znaczącą poprawę wydajności przejścia z kodu zarządzanego do niezarządzanego kodu. We wcześniejszych wersjach .NET Framework warstwa marshalling wykryła nieprawidłowe deklaracje wywołań platformy na platformach 32-bitowych i automatycznie naprawiła stos. Nowa architektura marshalling eliminuje ten krok. W związku z tym przejścia są bardzo szybkie, ale niepoprawna deklaracja wywołania platformy może spowodować niepowodzenie programu.

Aby ułatwić wykrywanie nieprawidłowych deklaracji podczas programowania, ulepszono środowisko debugowania programu Visual Studio. Asystent debugowania zarządzanego pInvokeStackImbalance (MDA) powiadamia o nieprawidłowych deklaracjach wywołań platformy, gdy aplikacja jest uruchomiona z dołączonym debugerem.

Aby rozwiązać scenariusze, w których aplikacja używa składników, których nie można ponownie skompilować i które mają niepoprawne deklaracje wywołania platformy, można użyć NetFx40_PInvokeStackResilience elementu . Dodanie tego elementu do pliku konfiguracji aplikacji z enabled="1" wyrażeniem zgody na tryb zgodności z zachowaniem wcześniejszych wersji .NET Framework kosztem wolniejszych przejść. Zestawy, które zostały skompilowane na wcześniejszych wersjach .NET Framework, są automatycznie wybierane w tym trybie zgodności i nie wymagają tego elementu.

Plik konfiguracji

Tego elementu można używać tylko w pliku konfiguracji aplikacji.

Przykład

W poniższym przykładzie pokazano, jak zdecydować się na zwiększenie odporności na nieprawidłowe deklaracje wywołań platformy dla aplikacji, kosztem wolniejszych przejść między zarządzanym i niezarządzanym kodem.

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

Zobacz też