StaticExtension.ProvideValue(IServiceProvider) Metod

Definition

Returnerar ett objektvärde som ska anges för egenskapen där du använder det här tillägget. För StaticExtensionär returvärdet det statiska värde som utvärderas för den begärda statiska medlemmen.

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

Parametrar

serviceProvider
IServiceProvider

Ett objekt som kan tillhandahålla tjänster för markeringstillägget. Tjänstleverantören förväntas tillhandahålla en tjänst som implementerar en typlösare (IXamlTypeResolver).

Returer

Det statiska värde som ska anges för egenskapen där tillägget används.

Undantag

Värdet member för tillägget är null vid tidpunkten för utvärderingen.

En del av strängen member parsade inte korrekt

-eller-

serviceProvider inte tillhandahåller någon tjänst för IXamlTypeResolver

-eller-

member värdet löstes inte till en statisk medlem.

serviceProvider är null.

Kommentarer

Den här metoden stöder XAML-språkfunktioner och är vanligtvis inte avsedd att anropas direkt. XAML-processorimplementeringen använder den här metoden för att hantera tilläggsvärdena x:Static korrekt när objektet skapas.

Den här implementeringen förlitar sig på tjänster som baseras på de överförda serviceProvider. serviceProvider får inte vara null. Objektet serviceProvider förväntas returnera en tjänst för IXamlTypeResolver. I det normala scenariot för användning av XAML-standardläsarna och XAML-skrivarna är en lämplig tjänstleverantör tillgänglig. En ogiltig XAML-schemakontext kan ha bieffekten av mappning av icke-bakåtkompatibla typer och därmed tjänsten IXamlTypeResolver .

I .NET Framework 4 stöder StaticExtension ett alternativt läge där den kan returnera en statisk medlem baserat på Member är det enkla medlemsnamnet och dess ägartyp som anges som MemberType, i stället för att Member ange ett fullständigt namn i formuläret type.member. Typlösaren fungerar fortfarande, men i det här fallet Member kombineras och MemberType i princip: memberFullName = MemberType.FullName + "." + Member.

Gäller för