Elemento <NetFx40_PInvokeStackResilience>
Especifica si el runtime corrige automáticamente las declaraciones de invocación de plataforma incorrectas en tiempo de ejecución, a costa de transiciones más lentas entre código administrado y código no administrado.
<configuration>
<runtime>
<NetFx40_PInvokeStackResilience>
Sintaxis
<NetFx40_PInvokeStackResilience enabled="1|0"/>
Atributos y elementos
En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.
Atributos
Atributo | Descripción |
---|---|
enabled |
Atributo necesario. Especifica si el tiempo de ejecución detecta declaraciones de invocación de plataforma incorrectas y corrige automáticamente la pila en tiempo de ejecución en plataformas de 32 bits. |
Atributo enabled
Valor | Descripción |
---|---|
0 |
El tiempo de ejecución usa la arquitectura de serialización de interoperabilidad más rápida introducida en .NET Framework 4, que no detecta ni corrige declaraciones de invocación de plataforma incorrectas. Este es el valor predeterminado. |
1 |
El tiempo de ejecución usa transiciones más lentas que detectan y corrigen declaraciones de invocación de plataforma incorrectas. |
Elementos secundarios
Ninguno.
Elementos primarios
Elemento | Descripción |
---|---|
configuration |
Elemento raíz de cada archivo de configuración usado por las aplicaciones de Common Language Runtime y .NET Framework. |
runtime |
Contiene información sobre las opciones de inicialización del motor en tiempo de ejecución. |
Comentarios
Este elemento le permite renunciar a una serialización de interoperabilidad más rápida a cambio de una mayor resistencia en tiempo de ejecución para hacer frente a declaraciones de invocación de plataforma incorrectas.
A partir de .NET Framework 4, una arquitectura de serialización de interoperabilidad simplificada proporciona una mejora significativa de rendimiento para las transiciones del código administrado al código no administrado. En versiones anteriores de .NET Framework, la capa de serialización detectaba declaraciones de invocación de plataforma incorrectas en plataformas de 32 bits y corregía automáticamente la pila. La nueva arquitectura de serialización elimina este paso. Como resultado, las transiciones son muy rápidas; sin embargo, una declaración de invocación de plataforma incorrecta puede provocar un error del programa.
Para facilitar la detección de declaraciones incorrectas durante el desarrollo, se ha mejorado la experiencia de depuración de Visual Studio. El asistente para depuración administrada (MDA) pInvokeStackImbalance notifica las declaraciones de invocación de plataforma incorrectas cuando la aplicación se ejecuta con el depurador asociado.
Para abordar escenarios en los que la aplicación usa componentes que no se pueden volver a compilar y que tienen declaraciones de invocación de plataforma incorrectas, puede usar el elemento NetFx40_PInvokeStackResilience
. Agregar este elemento al archivo de configuración de la aplicación con enabled="1"
opta por un modo de compatibilidad con el comportamiento de versiones anteriores de .NET Framework a cambio de transiciones más lentas. Los ensamblados que se han compilado con versiones anteriores de .NET Framework participan automáticamente en este modo de compatibilidad y no necesitan este elemento.
Archivo de configuración
Este elemento solo se puede utilizar en el archivo de configuración de la aplicación.
Ejemplo
En el ejemplo siguiente se muestra cómo optar por aumentar la resistencia frente a declaraciones de invocación de plataforma incorrectas para una aplicación, a costa de transiciones más lentas entre código administrado y no administrado.
<configuration>
<runtime>
<NetFx40_PInvokeStackResilience enabled="1"/>
</runtime>
</configuration>