System.Xaml和System.Windows.Markup的Xaml读者之间的区别?

时间:2014-06-06 07:35:18

标签: c# wpf silverlight xaml markup

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

1 个答案:

答案 0 :(得分:3)

取自MSDN

  

WPF类型和WPF技术通常支持依赖于WPF内部访问的概念。例如,WPF如何实现依赖项属性依赖于内部技术来进行有效的类型成员查找。 XamlWriter命名空间和PresentationFramework程序集中的XamlReaderSystem.Windows.Markup中提供的XAML读写API可以访问这些内部。但是,来自System.Xaml程序集的较低级别XAML读者和XAML编写者(基于System.Xaml.XamlReaderSystem.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作家。
  •