系统的Xaml阅读器的区别.Xaml和System.Windows.Markup

本文关键字:Xaml System Windows Markup 系统 区别 | 更新日期: 2023-09-27 18:06:56

有两个Xaml reader。其中一个包含在System.Xaml,另一个包含在System.Windows.Markup。它们之间有什么区别?

系统的Xaml阅读器的区别.Xaml和System.Windows.Markup

摘自MSDN:

一般来说,WPF类型和WPF技术支持依赖于访问WPF内部结构的概念。例如,WPF如何实现依赖项属性依赖于有效的类型成员查找的内部技术。通过XamlWriterXamlReader中提供的XAML读写api,可以从System.Windows.Markup名称空间和PresentationFramework程序集访问这些内部组件。然而,来自System.Xaml程序集(基于System.Xaml.XamlReaderSystem.Xaml.XamlWriter的类)的底层XAML读取器和XAML写入器不能访问WPF内部组件。没有从System.Xaml到任何wpf特定程序集的依赖关系。如果不能访问WPF内部,System.Xaml阅读器和编写器就不能正确地加载或保存所有WPF类型,或基于WPF类型的类型。特别是,System.Xaml的读者和作者不理解诸如WPF依赖属性支持属性存储之类的概念,或者WPF如何使用样式、资源字典和模板的所有细节。因此,你有一个选择:
  • 如果您正在加载WPF类型,和/或您正在以任何方式使用BAML形式的XAML,请使用PresentationFramework XAML阅读器和XAML写入器。
  • 如果您不依赖任何WPF类型或BAML形式的XAML,并且由于特定于该框架的原因不使用其他特定技术的XAML阅读器或XAML写入器实现,请使用System.Xaml XAML阅读器和XAML写入器。