Есть два считывателя Xaml. Один из них включен в System.Xaml
, другой - в System.Windows.Markup
. В чем разница между ними?Разница между читателями Xaml System.Xaml и System.Windows.Markup?
ответ
Взятые из MSDN:
типов WPF и технологию WPF в общих концепциях поддержки, которые полагаются на доступ к WPF внутренностям. Например, как WPF реализует свойства зависимостей, зависит от внутренних методов для эффективного поиска типов элементов. Доступ к этим внутренним элементам обеспечивается с помощью API-интерфейсов для чтения и записи XAML, представленных в
XamlWriter
иXamlReader
из пространства именSystem.Windows.Markup
и сборника PresentationFramework. Однако считыватели нижнего уровня XAML и XAML-записи из сборкиSystem.Xaml
(классы на основеSystem.Xaml.XamlReader
,System.Xaml.XamlWriter
) не имеют доступа к внутренним компонентам WPF. Нет зависимости отSystem.Xaml
от любой сборки, специфичной для WPF. Без доступа к внутренним компонентам WPFSystem.Xaml
читатели и писатели не могут правильно загружать или сохранять все типы WPF или типы на основе типов WPF. В частности, читатели и писателиSystem.Xaml
не понимают таких понятий, как хранилище свойств свойств свойств зависимостей WPF, или все особенности того, как WPF использует стили, ресурсные словари и шаблоны. Поэтому у вас есть выбор, чтобы сделать:
- При загрузке типов WPF, и/или вы используете XAML в форме BAML какого-либо образом использовать читатель PresentationFramework XAML и XAML писатель.
- Если вы не полагаетесь на какие-либо типы WPF или BAML-формы XAML и не используете реализацию XAML-считывателя XAML или XAML-приложений по причинам, специфичным для этой структуры, используйте считыватели XAML
System.Xaml
и XAML-записи.
Почему downvote? – franssu
@franssu Потому что некоторым людям просто нечего делать. – user258620