Sdílet prostřednictvím


StaticExtension.ProvideValue(IServiceProvider) Metoda

Definice

Vrátí hodnotu objektu nastavenou na vlastnost, ve které použijete toto rozšíření. Pro StaticExtensionje návratová hodnota statická hodnota, která se vyhodnotí pro požadovaného statického člena.

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

Parametry

serviceProvider
IServiceProvider

Objekt, který může poskytovat služby pro rozšíření značek. Očekává se, že poskytovatel služeb bude poskytovat službu, která implementuje překladač typů (IXamlTypeResolver).

Návraty

Statická hodnota, která se má nastavit u vlastnosti, ve které je rozšíření použito.

Výjimky

Hodnota member rozšíření je null v době vyhodnocení.

Některá část řetězce se member neanalyzovala správně.

-nebo-

serviceProvider neposkytoval službu pro IXamlTypeResolver

-nebo-

member hodnota se nepřeložila na statický člen.

serviceProvider je null.

Poznámky

Tato metoda podporuje funkce jazyka XAML a obecně není určena k přímému zavolání. Implementace procesoru XAML používá tuto metodu ke správnému x:Static zpracování hodnot rozšíření během vytváření objektu.

Tato implementace spoléhá na služby, které jsou založené na předané serviceProvider. serviceProvider nesmí být null. Očekává serviceProvider se, že objekt vrátí službu pro IXamlTypeResolver. V běžném scénáři použití výchozími čtečkami XAML a zapisovači XAML je k dispozici vhodný poskytovatel služeb. Neplatný kontext schématu XAML může mít vedlejší vliv na mapování typu, a tím i službu IXamlTypeResolver .

V rozhraní .NET Framework 4 podporuje alternativní režim, StaticExtension ve kterém může vrátit statický člen na Member základě jednoduchého názvu členu a jeho vlastního typu zadaného jako MemberType, namísto Member zadání úplného názvu v členu typu. formuláře. Překladač typů stále funguje, ale v tomto případě Member se a MemberType v podstatě kombinují: memberFullName = MemberType.FullName + "." + Member.

Platí pro