System.Xaml和System.Windows.Markup的Xaml读取器有什么区别?

7

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


1
@franssu 因为有些人就是没有其他事情可做。 - user258620
1个回答

7

摘自MSDN:

WPF类型和WPF技术总体上支持依赖于访问WPF内部的概念。例如,WPF如何实现依赖属性取决于用于高效类型成员查找的内部技术。可以通过来自System.Windows.Markup命名空间和PresentationFramework程序集的XamlWriterXamlReader提供的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类型或以任何方式使用XAML的BAML形式,请使用PresentationFramework XAML读取器和XAML编写器。
  • 如果您不依赖于任何WPF类型或XAML的BAML形式,并且没有出于特定于该框架的原因使用另一个特定技术的XAML读取器或XAML编写器实现,请使用System.Xaml XAML读取器和XAML编写器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接