引入的版本:.NET 10 预览版 1
ContextMenu、DataGrid、MainMenu、Menu、StatusBar、ToolBar已过时。 它们旨在实现与 .NET Framework 的二进制兼容性。
从 .NET 10 开始,提供了一些控件以与 .NET Framework 保持二进制兼容性,但这些控件已被标记为过时,并不建议在代码中直接使用。 无法实例化它们。 引用以下控件之一会在编译时生成警告 WFDEV006:
在早期版本的 .NET 中,引用使用这些类型的 .NET Framework 库将导致引发异常,因为 .NET 不提供这些类型。 从 .NET 10 开始,这些类型存在以提高与无法升级的较旧 .NET Framework 库的兼容性。
解决方法
将对这些控件的引用替换为其较新的对应项:
| 原始控件 | 新控件 |
|---|---|
ContextMenu |
ContextMenuStrip |
DataGrid |
DataGridView |
MainMenu |
MenuStrip |
Menu |
ToolStripDropDown 或 ToolStripDropDownMenu |
StatusBar |
StatusStrip |
ToolBar |
ToolStrip |
抑制警告
如果必须引用已过时的 API,例如要对其运行反射,则可以在代码或项目文件中禁止显示警告。 但是,无法实例化这些类型,并且仅用于兼容性。
使用以下任一方法禁止显示警告:
在 .editorConfig 文件中设置规则的严重性。
[*.{cs,vb}] dotnet_diagnostic.WFDEV006.severity = none有关编辑器配置文件的详细信息,请参阅 用于代码分析规则的配置文件。
将以下
PropertyGroup添加到项目文件:<PropertyGroup> <NoWarn>$(NoWarn);WFDEV006</NoWarn> </PropertyGroup>在代码中使用
#pragma warning disable WFDEV006指令进行抑制。
有关详细信息,请参阅如何禁止显示代码分析警告。