IXamlNameResolver 接口

定义

描述可返回 XAML 名称所指定对象的服务,或者返回推迟名称解析的标记。 该服务还可返回 XAML 名称范围中所有命名对象的可枚举集合。

public interface class IXamlNameResolver
public interface IXamlNameResolver
type IXamlNameResolver = interface
Public Interface IXamlNameResolver

注解

此接口不适用于典型 XAML 方案的外部实现,因为它是一项服务。 此服务使标记扩展和类型转换器能够在 XAML 节点表示形式中时将 XAML 名称解析为同一 XAML 源中的其他对象。 该服务可用于解析依赖于 XAML 名称的任何机制的转发引用,以便对周围 XAML 生产进行非线性访问。 有关详细信息,请参阅 XAML 的类型转换器和标记扩展

当 XAML 对象编写器调用值转换行为时,类型转换器和标记扩展可以在 XAML 对象编写器提供的服务上下文中查询 IXamlNameResolver 作为服务。 有关详细信息,请参阅适用于 XAML 和服务上下文的类型转换器和标记扩展,这些上下文可用于类型转换器和标记扩展

此服务公开可以延迟名称解析的 API。 服务实现的隐喻是,不能在针对部分名称对象图的第一次传递中解析的名称应存储并用于创建修复令牌。 在默认行为中,将提交所有此类名称,以便进行第二次传递的另一次解析尝试。 第二次传递时,整个名称对象图已完成,所有修复令牌都可以解析。

备注

即使特定实现允许它们,XAML 中的转发引用也不可避免地会产生性能后果。 作为生产质量 XAML 的最佳做法,请尽可能避免转发引用。

属性

IsFixupTokenAvailable

获取一个值,该值确定是否可调用 GetFixupToken(IEnumerable<String>, Boolean),以便将名称解析为前向解析的标记。

方法

GetAllNamesAndValuesInScope()

返回 XAML 名称范围中所有命名对象的可枚举集合。

GetFixupToken(IEnumerable<String>)

返回一个对象,该对象可针对生成前向引用的某些标记模式进行修正。

GetFixupToken(IEnumerable<String>, Boolean)

返回一个对象,该对象可针对生成前向引用的某些标记模式进行修正。

Resolve(String)

从名称引用解析对象。

Resolve(String, Boolean)

从名称引用解析对象,并提供一个跟踪值,该值报告是否为建立对象图而完全初始化对象。

事件

OnNameScopeInitializationComplete

在 XAML 处理器已向支持 XAML 名称范围注册了所有相关名称时发生。

适用于

另请参阅