<elemento > NetFx40_PInvokeStackResilience<NetFx40_PInvokeStackResilience> Element

Specifica se il runtime corregge automaticamente le dichiarazioni platform invoke non corrette in fase di esecuzione, al costo di transizioni più lente tra codice gestito e quello non gestito.Specifies whether the runtime automatically fixes incorrect platform invoke declarations at run time, at the cost of slower transitions between managed and unmanaged code.

<configuration> <configuration>
    <runtime >   <runtime>
     <NetFx40_PInvokeStackResilience >    <NetFx40_PInvokeStackResilience>

SintassiSyntax

<NetFx40_PInvokeStackResilience  enabled="1|0"/>

Attributi ed elementiAttributes and Elements

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.The following sections describe attributes, child elements, and parent elements.

AttributiAttributes

AttributoAttribute DescrizioneDescription
enabled Attributo obbligatorio.Required attribute.

Specifica se il runtime rileva dichiarazioni di platform invoke non corrette e corregge automaticamente lo stack in fase di esecuzione sulle piattaforme a 32 bit.Specifies whether the runtime detects incorrect platform invoke declarations and automatically fixes the stack at run time on 32-bit platforms.

Attributo enabledenabled Attribute

ValueValue DescrizioneDescription
0 Il runtime usa l'architettura di marshalling di interoperabilità più veloce introdotta in .NET Framework 4, che non rileva e corregge platform invoke dichiarazioni non corrette.The runtime uses the faster interop marshaling architecture introduced in the .NET Framework 4, which does not detect and fix incorrect platform invoke declarations. Questa è l'impostazione predefinita.This is the default.
1 Il runtime utilizza transizioni più lente che rilevano e correggono dichiarazioni di platform invoke non corrette.The runtime uses slower transitions that detect and fix incorrect platform invoke declarations.

Elementi figlioChild Elements

Nessuna.None.

Elementi padreParent Elements

ElementoElement DescrizioneDescription
configuration Elemento radice in ciascun file di configurazione usato in Common Language Runtime e nelle applicazioni .NET Framework.The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime Contiene informazioni sulle opzioni di inizializzazione in fase di esecuzione.Contains information about runtime initialization options.

NoteRemarks

Questo elemento consente di effettuare il marshalling di interoperabilità più veloce per la resilienza in fase di esecuzione rispetto a dichiarazioni platform invoke non corrette.This element enables you to trade faster interop marshaling for run-time resilience against incorrect platform invoke declarations.

A partire da .NET Framework 4, un'architettura di marshalling di interoperabilità semplificata offre un miglioramento significativo delle prestazioni per le transizioni dal codice gestito al codice non gestito.Starting with the .NET Framework 4, a streamlined interop marshaling architecture provides a significant performance improvement for transitions from managed code to unmanaged code. Nelle versioni precedenti del .NET Framework il livello di marshalling ha rilevato dichiarazioni di platform invoke non corrette sulle piattaforme a 32 bit e ha corretto automaticamente lo stack.In earlier versions of the .NET Framework, the marshaling layer detected incorrect platform invoke declarations on 32-bit platforms and automatically fixed the stack. La nuova architettura di marshalling elimina questo passaggio.The new marshaling architecture eliminates this step. Di conseguenza, le transizioni sono molto veloci, ma una dichiarazione di platform invoke non corretta può causare un errore del programma.As a result, transitions are very fast, but an incorrect platform invoke declaration can cause a program failure.

Per semplificare il rilevamento di dichiarazioni non corrette durante lo sviluppo, è stata migliorata l'esperienza di debug di Visual Studio.To make it easy to detect incorrect declarations during development, the Visual Studio debugging experience has been improved. L'assistente al debug gestito pInvokeStackImbalance Invia notifiche di Platform Invoke non corrette quando l'applicazione è in esecuzione con il debugger collegato.The pInvokeStackImbalance managed debugging assistant (MDA) notifies you of incorrect platform invoke declarations when your application is running with the debugger attached.

Per risolvere scenari in cui l'applicazione usa componenti che non è possibile ricompilare e che contengono dichiarazioni di platform invoke non corrette, è possibile usare l'elemento NetFx40_PInvokeStackResilience.To address scenarios where your application uses components that you cannot recompile, and that have incorrect platform invoke declarations, you can use the NetFx40_PInvokeStackResilience element. L'aggiunta di questo elemento al file di configurazione dell'applicazione con enabled="1" sceglie una modalità di compatibilità con il comportamento delle versioni precedenti del .NET Framework, al costo di transizioni più lente.Adding this element to your application configuration file with enabled="1" opts into a compatibility mode with the behavior of earlier versions of the .NET Framework, at the cost of slower transitions. Gli assembly compilati con versioni precedenti del .NET Framework vengono automaticamente scelti in questa modalità di compatibilità e non richiedono questo elemento.Assemblies that have been compiled against earlier versions of the .NET Framework are automatically opted into this compatibility mode, and do not need this element.

File di configurazioneConfiguration File

Questo elemento può essere utilizzato solo nel file di configurazione dell'applicazione.This element can be used only in the application configuration file.

EsempioExample

Nell'esempio seguente viene illustrato come scegliere una maggiore resilienza in caso di dichiarazioni di platform invoke non corrette per un'applicazione, al costo di transizioni più lente tra codice gestito e non gestito.The following example shows how to opt into increased resilience against incorrect platform invoke declarations for an application, at the cost of slower transitions between managed and unmanaged code.

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

Vedere ancheSee also