StaticExtension.ProvideValue(IServiceProvider) Metoda

Definicja

Zwraca wartość obiektu ustawioną we właściwości, w której zastosowano to rozszerzenie. W przypadku StaticExtensionwartości zwracanej jest wartość statyczna, która jest oceniana dla żądanego statycznego elementu członkowskiego.

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

Obiekt, który może świadczyć usługi dla rozszerzenia znaczników. Oczekuje się, że dostawca usług udostępni usługę, która implementuje rozpoznawanie typów (IXamlTypeResolver).

Zwraca

Wartość statyczna ustawiana we właściwości, w której zastosowano rozszerzenie.

Wyjątki

Wartość member rozszerzenia jest null w momencie oceny.

member Część ciągu nie została prawidłowo przeanalizowana

-lub-

serviceProvider nie dostarczyła usługi dla IXamlTypeResolver

-lub-

member wartość nie została rozpoznana dla statycznego elementu członkowskiego.

serviceProvider to null.

Uwagi

Ta metoda obsługuje funkcje języka XAML i zazwyczaj nie ma być wywoływana bezpośrednio. Implementacja procesora XAML używa tej metody do poprawnego x:Static obsługi wartości rozszerzeń podczas tworzenia obiektu.

Ta implementacja opiera się na usługach opartych na przekazanym serviceProviderobiekcie . serviceProvider nie może być null. Oczekuje serviceProvider się, że obiekt zwróci usługę dla IXamlTypeResolverelementu . W normalnym scenariuszu użycia domyślnie czytników XAML i pisarzy XAML dostępny jest odpowiedni dostawca usług. Nieprawidłowy kontekst schematu XAML może mieć efekt uboczny mapowania typu powodującego niezgodność, a tym samym IXamlTypeResolver usługi.

W .NET Framework 4 obsługuje tryb alternatywny, StaticExtension w którym może zwrócić statyczny element członkowski w oparciu o Member prostą nazwę elementu członkowskiego i jego typ będący właścicielem podany jako MemberType, zamiast Member podać pełną nazwę w elemencie typu. formularza. Program rozpoznawania typów nadal działa, ale w tym przypadku Member element i MemberType jest w zasadzie połączony: memberFullName = MemberType.FullName + "." + Member.

Dotyczy