語言

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 值並未解析為靜態成員。

serviceProvider 是 null。

備註

此方法支援 XAML 語言特性,通常不設計用於直接呼叫。 XAML 處理器實作使用此方法,在物件建立時正確處理 x:Static 擴充功能值。

此實作依賴基於已通過 serviceProvider的服務。 serviceProvider 不一定是 null。 serviceProvider該物件預期會回傳對 的IXamlTypeResolver服務。 在預設 XAML 讀取器與 XAML 寫入器正常使用的情況下,有合適的服務提供者可用。 無效的 XAML 結構上下文可能會造成破壞型別映射,進而破壞服務。IXamlTypeResolver

在 Framework 4 .NET中,StaticExtension 支援一種替代模式,可以根據 Member 作為簡單成員名稱,並以 MemberType 提供擁有型態,而非 Member 提供完整名稱,格式為 type.member。 型別解析器仍然作用,但此時 Member 和 MemberType 基本上是合併的: memberFullName = MemberType.FullName + "." + Member。

適用於