StaticExtension.ProvideValue(IServiceProvider) 方法

定义

返回一个要在应用此扩展的属性上设置的对象值。 对于 StaticExtension,返回值是针对请求的静态成员所计算的静态值。

public:
 override System::Object ^ ProvideValue(IServiceProvider ^ serviceProvider);
public override object ProvideValue (IServiceProvider serviceProvider);
override this.ProvideValue : IServiceProvider -> obj
Public Overrides Function ProvideValue (serviceProvider As IServiceProvider) As Object

参数

serviceProvider
IServiceProvider

可为标记扩展提供服务的对象。 服务提供商应提供可实现类型解析程序 (IXamlTypeResolver) 的服务。

返回

要在应用了扩展的属性上设置的静态值。

例外

计算时,扩展的 member 值为 null

member 字符串的某部分未进行正确分析。

- 或 -

serviceProvider 没有为 IXamlTypeResolver 提供服务

- 或 -

member 值未解析为静态成员。

serviceProvidernull

注解

此方法支持 XAML 语言功能,通常不打算直接调用。 XAML 处理器实现使用此方法在创建对象期间正确处理 x:Static 扩展值。

此实现依赖于基于传递的 serviceProvider的服务。 serviceProvider 不得为 null。 对象 serviceProvider 应返回 的 IXamlTypeResolver服务。 在默认 XAML 读取器和 XAML 编写器使用的正常情况下,可以使用合适的服务提供商。 无效的 XAML 架构上下文可能会产生中断类型映射的副作用,从而导致 IXamlTypeResolver 服务中断。

在 .NET Framework 4 中, 支持一种备用模式,StaticExtension通过该模式,它可以返回静态成员,该模式基于Member作为 简单成员名称及其所属类型提供为 MemberType,而不是Member在表单类型.成员中提供全名。 类型解析程序仍然有效,但在这种情况下, MemberMemberType 基本组合在一起: memberFullName = MemberType.FullName + "." + Member

适用于