Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Anwendungen, die sowohl auf Windows Presentation Foundation (WPF) als auch auf Windows Forms (WinForms) verweisen, müssen jetzt bestimmte Typen, wie MenuItem und ContextMenu, unterscheiden, um Kompilierungsfehler zu vermeiden.
Eingeführte Version
.NET 10
Vorheriges Verhalten
Zuvor wurden die Typen ContextMenu, DataGrid, DataGridCell, Menu, MenuItem, ToolBar und StatusBar in den System.Windows.Controls-Namespace aufgelöst, da sie im System.Windows.Forms-Namespace in .NET Core 3.1 bis .NET 9.0 nicht vorhanden waren.
<ImplicitUsings>enable</ImplicitUsings>
<UseWindowsForms>true</UseWindowsForms>
<UseWPF>true</UseWPF>
Neues Verhalten
Die betroffenen Typen im System.Windows.Forms-Namespace verursachen einen Kompilierzeitfehler, wenn es einen mehrdeutigen Verweis zwischen System.Windows.Controls und System.Windows.Forms gibt.
CS0104 'ContextMenu' is an ambiguous reference between 'System.Windows.Controls.ContextMenu' and 'System.Windows.Forms.ContextMenu'
Art der einschneidenden Änderung
Dies ist eine mit der Quelle inkompatible Änderung.
Grund für Änderung
Die Änderung erleichtert die Migration von .NET Framework, wenn Drittanbieterbibliotheken nicht aktualisiert werden können. Eine .NET 10 Anwendung kann weiterhin auf Abhängigkeiten vom .NET Framework verweisen und Fehler zur Laufzeit behandeln.
Empfohlene Aktion
Verwenden Sie Aliase, um widersprüchliche Namespaces zu lösen. Beispiel:
using ContextMenu = System.Windows.Controls.ContextMenu;
Weitere Details finden Sie in der Dokumentation zu Aliasnamenkonflikten .
Betroffene APIs
- 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