XmlnsPrefixAttribute 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当在 XAML 文件(序列化)中编写元素和特性时,或与具有 XAML 编辑功能的设计环境进行交互时,标识要与 XAML 命名空间关联用于 XAML 的推荐前缀。
public ref class XmlnsPrefixAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=true)]
public sealed class XmlnsPrefixAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=true)>]
type XmlnsPrefixAttribute = class
inherit Attribute
Public NotInheritable Class XmlnsPrefixAttribute
Inherits Attribute
- 继承
- 属性
注解
包含 XAML 的 XAML 处理器或框架,或任何执行 XAML 序列化的进程通常应遵循建议的前缀。 如果原始 XAML 源中特定映射的前缀未以某种方式保留在运行时对象图中,或者由框架或技术以其他方式存储,则前缀可能是必需的。 框架可能具有特定的首选项,即如何序列化其自己的类型,这些类型会忽略其程序集中建议的前缀;这样做可以一致地提升默认 XAML 命名空间。 但是,此类框架仍应为其 XAML 类型的可能第三方和工具用法提供建议的前缀。 请参阅下面的“XAML Designer支持或常规序列化的最佳做法”部分。
前缀的一般建议是使用短字符串,因为前缀通常应用于来自 XAML 命名空间的所有序列化元素。 前缀字符串长度可能会对序列化 XAML 输出的大小产生明显影响。
如果请求的前缀已被以前遇到的/序列化的另一个 XAML 命名空间标识符使用,则行为未指定, (行为由每个单独的 XAML 处理器实现) 决定。
在大多数情况下,只有在程序集中也为同一 XAML 命名空间应用了至少一个XmlnsDefinitionAttribute时,才应用 XmlnsPrefixAttribute 。
在早期版本的 .NET Framework中,此类存在于特定于 WPF 的程序集 WindowsBase 中。 在 .NET Framework 4 中, XmlnsPrefixAttribute 位于 System.Xaml 程序集中。 有关详细信息,请参阅 Types Migrated from WPF to System.Xaml。
XAML Designer支持或常规序列化的最佳做法
即使你希望关联的 XAML 命名空间成为框架或库的大多数用例的默认 XAML 命名空间,仍应指定一个非空字符串作为 XAML 命名空间的建议前缀。 默认 XAML 命名空间信息在单个 XAML 文件和 XAML 节点流中携带。 无需使用 XmlnsPrefixAttribute,即可轻松将默认 XAML 命名空间及其在给定 XAML 源中的定义方式永久化,以便按大小写序列化。 但是, XmlnsPrefixAttribute 对于 XAML 作者已选择将默认 XAML 命名空间映射到其他命名空间的情况,则 很有用。 在此方案中,嵌入在设计环境中的 XAML 文本编辑器可以使用 XmlnsPrefixAttribute 作为初始 XAML 命名空间 xmlns
映射的提示。 或者,设计环境可以将实时映射添加到设计隐喻的后备 XAML,例如将对象从工具箱拖动到可视化设计图面中。 此外,可以想象,设计器可以同时支持多个支持 XAML 的框架,并且具有依赖于.NET Framework XAML 服务而不是特定于框架的序列化的通用 XAML 序列化程序。
XmlnsPrefixAttribute如果 XAML 在设计工具之间交换,或者在 XAML 编辑器和其他使用者(如标记编译器或其他序列化)之间进行往返,则为这些方案指定 一个有助于使类型的 XAML 用法更具可移植性和稳定性。
构造函数
XmlnsPrefixAttribute(String, String) |
初始化 XmlnsPrefixAttribute 类的新实例。 |
属性
Prefix |
获取与此属性关联的建议前缀。 |
TypeId |
在派生类中实现时,获取此 Attribute 的唯一标识符。 (继承自 Attribute) |
XmlNamespace |
获取与此属性关联的 XAML 命名空间标识符。 |
方法
Equals(Object) |
返回一个值,该值指示此实例是否与指定的对象相等。 (继承自 Attribute) |
GetHashCode() |
返回此实例的哈希代码。 (继承自 Attribute) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
IsDefaultAttribute() |
在派生类中重写时,指示此实例的值是否是派生类的默认值。 (继承自 Attribute) |
Match(Object) |
当在派生类中重写时,返回一个指示此实例是否等于指定对象的值。 (继承自 Attribute) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |
显式接口实现
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
将一组名称映射为对应的一组调度标识符。 (继承自 Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
检索对象的类型信息,然后可以使用该信息获取接口的类型信息。 (继承自 Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
检索对象提供的类型信息接口的数量(0 或 1)。 (继承自 Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
提供对某一对象公开的属性和方法的访问。 (继承自 Attribute) |