编译器警告WFDEV006

引入的版本:.NET 10 预览版 1

ContextMenuDataGridMainMenuMenuStatusBarToolBar 已过时。 它们旨在实现与 .NET Framework 的二进制兼容性。

从 .NET 10 开始,提供了一些控件以与 .NET Framework 保持二进制兼容性,但这些控件已被标记为过时,并不建议在代码中直接使用。 无法实例化它们。 引用以下控件之一会在编译时生成警告 WFDEV006

在早期版本的 .NET 中,引用使用这些类型的 .NET Framework 库将导致引发异常,因为 .NET 不提供这些类型。 从 .NET 10 开始,这些类型存在以提高与无法升级的较旧 .NET Framework 库的兼容性。

解决方法

将对这些控件的引用替换为其较新的对应项:

原始控件 新控件
ContextMenu ContextMenuStrip
DataGrid DataGridView
MainMenu MenuStrip
Menu ToolStripDropDownToolStripDropDownMenu
StatusBar StatusStrip
ToolBar ToolStrip

抑制警告

如果必须引用已过时的 API,例如要对其运行反射,则可以在代码或项目文件中禁止显示警告。 但是,无法实例化这些类型,并且仅用于兼容性。

使用以下任一方法禁止显示警告:

  • .editorConfig 文件中设置规则的严重性。

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

    有关编辑器配置文件的详细信息,请参阅 用于代码分析规则的配置文件。

  • 将以下 PropertyGroup 添加到项目文件:

    <PropertyGroup>
        <NoWarn>$(NoWarn);WFDEV006</NoWarn>
    </PropertyGroup>
    
  • 在代码中使用 #pragma warning disable WFDEV006 指令进行抑制。

有关详细信息,请参阅如何禁止显示代码分析警告