Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os aplicativos que fazem referência ao Windows Presentation Foundation (WPF) e ao Windows Forms (WinForms) agora devem desambiguar certos tipos, como MenuItem e ContextMenu, para evitar erros em tempo de compilação.
Versão introduzida
.NET 10
Comportamento anterior
Anteriormente, os tipos ContextMenu, DataGrid, DataGridCell, Menu, MenuItem, ToolBare StatusBar seriam resolvidos para o namespace System.Windows.Controls porque eles não existiam no namespace System.Windows.Forms no .NET Core 3.1 a .NET 9.0.
<ImplicitUsings>enable</ImplicitUsings>
<UseWindowsForms>true</UseWindowsForms>
<UseWPF>true</UseWPF>
Novo comportamento
Os tipos afetados no namespace System.Windows.Forms causam um erro em tempo de compilação quando há uma referência ambígua entre System.Windows.Controls e System.Windows.Forms.
CS0104 'ContextMenu' is an ambiguous reference between 'System.Windows.Controls.ContextMenu' and 'System.Windows.Forms.ContextMenu'
Tipo de mudança de rutura
Esta é uma mudança incompatível com a fonte.
Motivo da mudança
A alteração facilita a migração do .NET Framework quando bibliotecas de terceiros não podem ser atualizadas. Um aplicativo .NET 10 pode continuar a fazer referência a dependências do .NET Framework e manipular erros em tempo de execução.
Ação recomendada
Use aliases para resolver namespaces conflitantes. Por exemplo:
using ContextMenu = System.Windows.Controls.ContextMenu;
Consulte a documentação de conflitos de nome de alias em para obter mais detalhes.
APIs afetadas
- System.Windows.Forms.ContextMenu
- System.Windows.Forms.DataGrid
- System.Windows.Forms.DataGridCell
- System.Windows.Forms.Menu
- System.Windows.Forms.MenuItem
- System.Windows.Forms.ToolBar
- System.Windows.Forms.StatusBar
- System.Windows.Controls.ContextMenu
- System.Windows.Controls.DataGrid
- System.Windows.Controls.DataGridCell
- System.Windows.Controls.Menu
- System.Windows.Controls.MenuItem
- System.Windows.Controls.ToolBar
System.Windows.Controls.StatusBar