Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aplikacje, które odwołują się zarówno do Windows Presentation Foundation (WPF), jak i Windows Forms (WinForms), muszą teraz rozróżniać niektóre typy, takie jak MenuItem i ContextMenu, aby uniknąć błędów czasu kompilacji.
Wersja wprowadzona
.NET 10
Poprzednie zachowanie
Wcześniej typy ContextMenu, DataGrid, DataGridCell, Menu, MenuItem, ToolBari StatusBar były przypisywane do przestrzeni nazw System.Windows.Controls, ponieważ nie istniały w przestrzeni nazw System.Windows.Forms w wersjach od .NET Core 3.1 do .NET 9.0.
<ImplicitUsings>enable</ImplicitUsings>
<UseWindowsForms>true</UseWindowsForms>
<UseWPF>true</UseWPF>
Nowe zachowanie
W przestrzeni nazw System.Windows.Forms objęte typy powodują błąd kompilacji, gdy istnieje niejednoznaczne odwołanie między System.Windows.Controls a System.Windows.Forms.
CS0104 'ContextMenu' is an ambiguous reference between 'System.Windows.Controls.ContextMenu' and 'System.Windows.Forms.ContextMenu'
Typ zmiany, która prowadzi do niezgodności
To zmiana niekompatybilna ze źródłem .
Przyczyna zmiany
Zmiana ułatwia migrację z programu .NET Framework, gdy nie można zaktualizować bibliotek innych firm. Aplikacja .NET 10 może nadal odwoływać się do zależności programu .NET Framework i obsługiwać błędy w czasie wykonywania.
Zalecana akcja
Użyj aliasów, aby rozwiązać konflikty przestrzeni nazw. Na przykład:
using ContextMenu = System.Windows.Controls.ContextMenu;
Aby uzyskać więcej informacji, zajrzyj do dokumentacji dotyczącej konfliktów nazw aliasów .
Interfejsy API, których dotyczy problem
- 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