有两个Xaml读取器。其中一个包含在System.Xaml
中,另一个包含在System.Windows.Markup
中。
它们之间有什么区别?
有两个Xaml读取器。其中一个包含在System.Xaml
中,另一个包含在System.Windows.Markup
中。
它们之间有什么区别?
摘自MSDN:
WPF类型和WPF技术总体上支持依赖于访问WPF内部的概念。例如,WPF如何实现依赖属性取决于用于高效类型成员查找的内部技术。可以通过来自
System.Windows.Markup
命名空间和PresentationFramework程序集的XamlWriter
和XamlReader
提供的XAML读取和写入API来启用对这些内部的访问。然而,System.Xaml
程序集中较低级别的XAML读取器和XAML编写器(基于System.Xaml.XamlReader
、System.Xaml.XamlWriter
的类)没有访问WPF内部的权限。System.Xaml
不依赖于任何特定于WPF的程序集。如果没有访问WPF内部,System.Xaml
读取器和编写器就无法正确加载或保存所有WPF类型或基于WPF类型的类型。特别是,System.Xaml
读取器和编写器不理解诸如WPF依赖属性后备属性存储的概念,以及WPF如何使用样式、资源字典和模板的所有细节。因此,您需要做出选择:
- 如果您正在加载WPF类型或以任何方式使用XAML的BAML形式,请使用PresentationFramework XAML读取器和XAML编写器。
- 如果您不依赖于任何WPF类型或XAML的BAML形式,并且没有出于特定于该框架的原因使用另一个特定技术的XAML读取器或XAML编写器实现,请使用
System.Xaml
XAML读取器和XAML编写器。