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

適用於