有两个Xaml读者。其中一个包含在System.Xaml
中,另一个包含在System.Windows.Markup
中。
他们之间有什么区别?
答案 0 :(得分:3)
取自MSDN:
WPF类型和WPF技术通常支持依赖于WPF内部访问的概念。例如,WPF如何实现依赖项属性依赖于内部技术来进行有效的类型成员查找。
XamlWriter
命名空间和PresentationFramework程序集中的XamlReader
和System.Windows.Markup
中提供的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类型,和/或您以任何方式使用BAML表单中的XAML,请使用PresentationFramework XAML阅读器和XAML编写器。
- 如果您不依赖于任何WPF类型或BAML形式的XAML,并且由于特定于该框架的原因未使用其他特定技术的XAML阅读器或XAML编写器实现,请使用
System.Xaml
XAML阅读器和XAML作家。