Elemento <NetFx40_PInvokeStackResilience>
Specifica se il runtime corregge automaticamente dichiarazioni platform invoke errate in fase di esecuzione, al costo di transizioni più lente tra codice gestito e non gestito.
<NetFx40_PInvokeStackResilience enabled="1|0"/>
Attributi ed elementi
Nelle sezioni seguenti vengono illustrati attributi, elementi figlio e padre.
Attributi
Attributo |
Oggetto di descrizione |
---|---|
enabled |
Attributo obbligatorio. Specifica se il runtime rileva dichiarazioni platform invoke errate e automaticamente corregge in fase di esecuzione lo stack sulle piattaforme a 32 bit. |
Attributo enabled
Value |
Oggetto di descrizione |
---|---|
0 |
Il runtime utilizza l'architettura del marshalling di interoperabilità più veloce introdotta in .NET Framework versione 4, che non rileva e non corregge dichiarazioni platform invoke errate. Questa è l'impostazione predefinita. |
1 |
Il runtime utilizza transizioni più lente che rilevano e correggono dichiarazioni platform invoke errate. |
Elementi figlio
Nessuno.
Elementi padre
Elemento |
Oggetto di descrizione |
---|---|
configuration |
Elemento radice in ciascun file di configurazione utilizzato in Common Language Runtime e nelle applicazioni .NET Framework. |
runtime |
Contiene informazioni sulle opzioni di inizializzazione in fase di esecuzione. |
Note
Questo elemento consente di negoziare interoperabilità più veloce per effettuare il marshalling per l'elasticità della fase di esecuzione rispetto a dichiarazioni platform invoke errate.
Iniziando con .NET Framework 4, un'architettura del marshalling di interoperabilità semplificata fornisce un miglioramento nelle prestazioni significativo per le transizioni da codice gestito a codice non gestito. In versioni precedenti di .NET Framework, il livello del marshalling ha rilevato dichiarazioni di platform invoke errate sulle piattaforme a 32 bit e ha automaticamente fissato lo stack. La nuova architettura del marshalling elimina questo passaggio. Di conseguenza, le transizioni sono molto veloci, ma una dichiarazione platform invoke errata può provocare un errore del programma.
Per facilitare il rilevamento di dichiarazioni errate durante lo sviluppo, l'esperienza di debug di Visual Studio è stata migliorata. PInvokeStackImbalance gestito dal debug di assistente (MDA) notifica dichiarazioni platform invoke errate quando l'applicazione è in esecuzione con il debugger allegato.
Per indirizzare scenari in cui l'applicazione utilizza componenti che non è possibile ricompilare e che dispongono di dichiarazioni platform invoke errate, è possibile utilizzare l'elemento NetFx40_PInvokeStackResilience. L'aggiunta di questo elemento al file di configurazione dell'applicazione con enabled="1" sceglie in una modalità di compatibilità con il comportamento di versioni precedenti di .NET Framework, al costo di transizioni più lente. Assembly compilati rispetto a versioni precedenti di .NET Framework vengono scelti automaticamente in questa modalità di compatibilità e non hanno bisogno di questo elemento.
File di configurazione
L'elemento può essere utilizzato esclusivamente nel file di configurazione dell'applicazione.
Esempio
Nell'esempio seguente viene mostrato come scegliere a fronte dell'aumentata flessibilità rispetto a dichiarazioni platform invoke errate per un'applicazione, al costo di transizioni più lente tra codice gestito e non gestito.
<configuration>
<runtime>
<NetFx40_PInvokeStackResilience enabled="1"/>
</runtime>
</configuration>
Vedere anche
Riferimenti
Schema delle impostazioni dell'ambiente di esecuzione