Compartir a través de


Advertencia del compilador WFDEV006

Versión introducida: .NET 10 (versión preliminar 1)

ContextMenu, DataGrid, MainMenu, Menu, StatusBarToolBar están obsoletos. Se proporcionan para la compatibilidad binaria con .NET Framework.

A partir de .NET 10, algunos controles se proporcionan para la compatibilidad binaria con .NET Framework, pero están marcados como obsoletos y no están diseñados para usarse directamente desde el código. No se pueden instanciar. Al hacer referencia a uno de los controles siguientes se genera una advertencia WFDEV006 en tiempo de compilación:

En versiones anteriores de .NET, hacer referencia a una biblioteca de .NET Framework que usaba estos tipos daría lugar a una excepción que se produce porque .NET no proporcionó estos tipos. A partir de .NET 10, estos tipos existen para mejorar la compatibilidad con bibliotecas de .NET Framework anteriores que no se pueden actualizar.

Solución

Reemplace las referencias a estos controles por sus homólogos más recientes:

Control original Nuevo control
ContextMenu ContextMenuStrip
DataGrid DataGridView
MainMenu MenuStrip
Menu ToolStripDropDown o ToolStripDropDownMenu
StatusBar StatusStrip
ToolBar ToolStrip

Supresión de una advertencia

Si debe hacer referencia a las API obsoletas, por ejemplo, para ejecutar la reflexión en ellas, puede suprimir la advertencia en el código o en el archivo del proyecto. Sin embargo, estos tipos no pueden instanciarse y solo se proporcionan por motivos de compatibilidad.

Suprima la advertencia con cualquiera de los métodos siguientes:

  • Establezca la gravedad de la regla en el archivo .editorConfig .

    [*.{cs,vb}]
    dotnet_diagnostic.WFDEV006.severity = none
    

    Para obtener más información sobre los archivos de configuración del editor, consulte Archivos de configuración para reglas de análisis de código.

  • Agregue el siguiente PropertyGroup al archivo del proyecto:

    <PropertyGroup>
        <NoWarn>$(NoWarn);WFDEV006</NoWarn>
    </PropertyGroup>
    
  • Suprima en el código con la directiva #pragma warning disable WFDEV006.

Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.