Sdílet prostřednictvím


Aplikace odkazující na WPF i WinForms musí zrušit nejednoznačnost typů MenuItem a ContextMenu.

Aplikace, které odkazují na Windows Presentation Foundation (WPF) a Windows Forms (WinForms), musí nyní nejednoznačit určité typy, například MenuItem a ContextMenu, aby nedocházelo k chybám kompilace.

Verze byla představena

.NET 10

Předchozí chování

Dříve se typy ContextMenu, DataGrid, DataGridCell, Menu, MenuItem, ToolBara StatusBar přeložily na obor názvů System.Windows.Controls, protože v oboru názvů System.Windows.Forms v .NET Core 3.1 až .NET 9.0 neexistují.

<ImplicitUsings>enable</ImplicitUsings>
<UseWindowsForms>true</UseWindowsForms>
<UseWPF>true</UseWPF>

Nové chování

Ovlivněné typy v oboru názvů System.Windows.Forms způsobují chybu v době kompilace, pokud existuje nejednoznačný odkaz mezi System.Windows.Controls a System.Windows.Forms.

CS0104 'ContextMenu' is an ambiguous reference between 'System.Windows.Controls.ContextMenu' and 'System.Windows.Forms.ContextMenu'

Typ zásadní změny

Jedná se o změnu , která je nekompatibilní se zdrojem.

Důvod změny

Tato změna usnadňuje migraci z rozhraní .NET Framework, pokud nelze aktualizovat knihovny třetích stran. Aplikace .NET 10 může nadále odkazovat na závislosti rozhraní .NET Framework a zpracovávat chyby za běhu.

Pro vyřešení konfliktů v oborech názvů použijte aliasy. Například:

using ContextMenu = System.Windows.Controls.ContextMenu;

Další podrobnosti najdete v dokumentaci ke konfliktům názvů aliasů .

Ovlivněná rozhraní API