Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приложения, ссылающиеся как на Windows Presentation Foundation (WPF), так и на Windows Forms (WinForms), теперь должны диамбигуировать определенные типы, такие как MenuItem и ContextMenu, чтобы избежать ошибок во время компиляции.
Представленная версия
.NET 10
Предыдущее поведение
Ранее типы ContextMenu, DataGrid, DataGridCell, Menu, MenuItem, ToolBar, и StatusBar разрешались в пространство имен System.Windows.Controls, так как они не существовали в пространстве имен System.Windows.Forms в .NET Core 3.1 до .NET 9.0.
<ImplicitUsings>enable</ImplicitUsings>
<UseWindowsForms>true</UseWindowsForms>
<UseWPF>true</UseWPF>
Новое поведение
Затронутые типы в пространстве имен System.Windows.Forms вызывают ошибку во время компиляции при наличии неоднозначной ссылки между System.Windows.Controls и System.Windows.Forms.
CS0104 'ContextMenu' is an ambiguous reference between 'System.Windows.Controls.ContextMenu' and 'System.Windows.Forms.ContextMenu'
Тип изменения, нарушающего совместимость
Это изменение несовместимого источника.
Причина изменения
Это изменение упрощает миграцию из .NET Framework при невозможности обновления сторонних библиотек. Приложение .NET 10 может продолжать ссылаться на зависимости .NET Framework и обрабатывать ошибки во время выполнения.
Рекомендуемое действие
Используйте псевдонимы для устранения конфликтов в пространствах имен. Например:
using ContextMenu = System.Windows.Controls.ContextMenu;
Дополнительные сведения см. в документации по конфликтам имен псевдонимов.
Затронутые API
- 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