Compartir a través de


Características de Windows Forms obsoletas en .NET 7 y versiones posteriores

A partir de .NET 7, algunas API de Windows Forms se marcan como obsoletas, o generan una advertencia, con identificadores de diagnóstico personalizados con el formato WFDEVXXX.

Si se producen advertencias o errores de compilación debido al uso de una API obsoleta, siga las instrucciones específicas proporcionadas para el identificador de diagnóstico en la sección Referencia. Las advertencias o los errores de estas obsolescencias no pueden suprimirse mediante el identificador de diagnóstico estándar (CS0618) para tipos o miembros obsoletos; use los valores del identificador de diagnóstico WFDEVXXX personalizado en su lugar. Para obtener más información, vea Suprimir advertencias.

Referencia

En la tabla siguiente se proporciona un índice de las obsolescencias y advertencias WFDEVXXX en .NET 7 y versiones posteriores.

Id. de diagnóstico Advertencia o error Descripción
WFDEV001 Advertencia La conversión hacia y desde IntPtr no es segura. Use WParamInternal, LParamInternal o ResultInternal en su lugar.
WFDEV002 Advertencia o error Ya no se usa System.Windows.Forms.DomainUpDown.DomainUpDownAccessibleObject para proporcionar compatibilidad accesible con los controles DomainUpDown. En su lugar, use AccessibleObject.
WFDEV003 Advertencia Ya no se usa System.Windows.Forms.DomainUpDown.DomainItemAccessibleObject para proporcionar compatibilidad accesible con los elementos DomainUpDown. En su lugar, use AccessibleObject.

Suprimir advertencias

Se recomienda usar una solución alternativa disponible siempre que sea posible. Pero, si no puede cambiar el código, puede suprimir las advertencias por medio de una directiva #pragma o la opción de configuración del proyecto <NoWarn>. Si debe usar las API obsoletas y el diagnóstico WFDEVXXX no se ve como un error, puede suprimir la advertencia en el código o en el archivo del proyecto.

Para suprimir las advertencias en el código:

// Disable the warning.
#pragma warning disable WFDEV001

// Code that uses obsolete API.
//...

// Re-enable the warning.
#pragma warning restore WFDEV001

Para suprimir las advertencias en un archivo de proyecto:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   <TargetFramework>net7.0</TargetFramework>
   <!-- NoWarn below suppresses WFDEV001 project-wide -->
   <NoWarn>$(NoWarn);WFDEV001</NoWarn>
   <!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
   <NoWarn>$(NoWarn);WFDEV001</NoWarn>
   <NoWarn>$(NoWarn);WFDEV003</NoWarn>
   <!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
   <NoWarn>$(NoWarn);WFDEV001;WFDEV003</NoWarn>
  </PropertyGroup>
</Project>

Nota

La supresión de advertencias de esta manera solo deshabilita las advertencias de obsolescencia que especifique. No deshabilita ninguna otra advertencia, incluidas las de obsolescencia con otros identificadores de diagnóstico.

Vea también