Windows 窗体过时和警告 (.NET 7)

从 .NET 7 开始,某些 Windows 窗体 API 标记为已过时。 其他 API 不会过时,但如果引用它们,会出现编译时警告。

旧行为

在以前的 .NET 版本中,可以使用这些 API,而不会引发任何生成警告。

新行为

在 .NET 7 及更高版本中,使用这些 API 会生成编译时警告或错误,并显示自定义诊断 ID。 使用自定义诊断 ID 可单独取消某个警告,而不是取消所有过时警告。

下表列出了自定义诊断 ID 及其相应的警告消息。

诊断 ID 说明 严重性 引入的版本
WFDEV001 强制转换到 IntPtr 或从中强制转换不安全。 请改用 WParamInternalLParamInternalResultInternal 警告 预览版 1
WFDEV002 System.Windows.Forms.DomainUpDown.DomainUpDownAccessibleObject 不再用于为 DomainUpDown 控件提供可访问支持。 请改用 AccessibleObject 警告 RC 1
WFDEV003 System.Windows.Forms.DomainUpDown.DomainItemAccessibleObject 不再用于为 DomainUpDown 项提供可访问支持。 请改用 AccessibleObject 警告 RC 1

引入的版本

.NET 7

中断性变更的类型

这种过时和警告可能会影响源兼容性

  • 使用警告中提供的 URL 链接,遵循为每个诊断 ID 提供的特定指南。
  • 如有必要,可以使用自定义 WFDEVxxx 诊断 ID 值取消警告。

受影响的 API

WFDEV001

WFDEV002

WFDEV003

另请参阅