IDestinationTypeProvider 接口

定义

表示一个服务,该服务可返回目标类型的 CLR 类型系统标识符。 与目标类型相关的情况是属性设置操作的目标类型由反射或其他机制间接报告。

public interface class IDestinationTypeProvider
public interface IDestinationTypeProvider
type IDestinationTypeProvider = interface
Public Interface IDestinationTypeProvider

注解

返回 GetDestinationType 的类型通过使用当前 XAML 架构上下文从 XAML 节点流的当前位置解析。

如果使用由 .NET Framework XAML 服务实现的 XAML 类型系统并在这些条件下访问服务上下文, GetDestinationType UnderlyingType则返回基于可用 XAML 类型系统信息和基于 CLR 的 XAML 架构上下文。

此服务与纯 CLR 反射或其他机制可能无法提供有关目标类型的足够信息的情况相关。 下面是一些相关方案 IDestinationTypeProvider的列表:

  • CLR 类型系统报告间接类型,因为 CLR 如何定义和使用类型,并且需要真正的目标类型。 例如,.NET Framework XAML 服务中的 API 在处理事件成员时在内部使用此服务。 事件由纯 CLR 反射报告为一种 Delegate

  • 你需要确保类型转换器使用的目标类型与类型转换器可以生成的预期类型匹配。 当目标类型被参数化或泛型时,此方案非常有用。

  • 值转换器是从嵌套在另一个值转换器中的用法调用的。 在这种情况下, GetDestinationType 展开嵌套并返回要设置的实际属性的目标类型,而不是返回任何交错值转换器的输出类型。

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

方法

GetDestinationType()

返回 CLR Type,用于标识相关类型转换器或标记扩展的目标类型。

适用于

另请参阅