什么是支持类型?

时间:2012-01-03 20:31:23

标签: .net wpf xaml types assemblies

我不太明白这是什么意思(MSDN):

XAML directly represents the instantiation of objects in a specific set of backing types defined in assemblies. This is unlike most other markup languages, which are typically an interpreted language without such a direct tie to a backing type system.

什么是支持类型和支持类型系统?这些集合文件是否定义了XAML的标签?

2 个答案:

答案 0 :(得分:4)

Backing Types这里只是意味着存在与您的XAML声明匹配的特定的直接等效类。您的XAML是标记 - 但WPF程序集具有完全匹配的类,“支持那些”。

这与HTML相反;您的Web浏览器可能没有名为img的类来匹配您的<img>标记。它实际上可能;但HTML并不代表不同的支持类型。另一方面,XAML 意味着在其对象标记与代码中的实际类之间具有一对一的关系。

答案 1 :(得分:1)

粗略地讲,XAML是一种用于描述对象树的实例化和各种属性设置的语言。因此,它与CLR及其类型系统密切相关。它非常强大,它被WPF广泛使用,尽管没有什么可以阻止你将它用于其他类型的对象树。

使用此命名空间定义使XAML成为'WPF特定':

的xmlns = “http://schemas.microsoft.com/winfx/2006/xaml/presentation”

这告诉XAML解析器默认命名空间应该如上所定义,然后映射到所有各种WPF类类型。此URL由包含WPF特定类型的各种程序集定义,方法是在每个程序集上定义一个或多个XmlnsDefinitionAttribute,将各种程序集名称空间映射到XML名称空间。


有关XAML含义的其他信息,请参阅XAML Syntax In Detail。 XAML语言规范还有一个链接。值得注意的是,XAML是一种编译语言,其产品是可以实例化的.NET类。它是一种用于有效描述深层嵌套和复杂内容的语言,具有属性值赋值和向集合添加元素,这可能是C#难以实现的。但是,XAML编译器确实支持代码隐藏,它允许您将其他C#代码与XAML构造的类相关联。