Freigeben über


StaticExtension.ProvideValue(IServiceProvider) Methode

Definition

Gibt einen Objektwert zurück, der für die Eigenschaft festgelegt werden soll, auf die Sie diese Erweiterung anwenden. Für StaticExtension ist der Rückgabewert der statische Wert, der für den angeforderten statischen Member ausgewertet wird.

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

Parameter

serviceProvider
IServiceProvider

Ein Objekt, das Dienste für die Markuperweiterung bereitstellen kann. Der Dienstanbieter muss einen Dienst bereitstellen, der einen Typresolver implementiert (IXamlTypeResolver).

Gibt zurück

Der statische Wert, der für die Eigenschaft festgelegt wird, auf die die Erweiterung angewendet wird.

Ausnahmen

Der member-Wert für die Erweiterung ist zum Zeitpunkt der Auswertung null.

Ein Teil der member-Zeichenfolge wurde nicht ordnungsgemäß analysiert.

- oder -

serviceProvider hat keinen Dienst für IXamlTypeResolver bereitgestellt.

- oder -

Der member-Wert wurde nicht in einen statischen Member aufgelöst.

serviceProvider ist null.

Hinweise

Diese Methode unterstützt XAML-Sprachfeatures und ist im Allgemeinen nicht für den direkten Aufruf vorgesehen. Die XAML-Prozessorimplementierung verwendet diese Methode, um die Erweiterungswerte während der x:Static Objekterstellung ordnungsgemäß zu behandeln.

Diese Implementierung basiert auf Diensten, die auf dem übergebenen serviceProviderbasieren. serviceProvider darf nicht sein null. Es serviceProvider wird erwartet, dass das -Objekt einen Dienst für IXamlTypeResolverzurückgibt. Im normalen Szenario der Verwendung durch die standardmäßigen XAML-Reader und XAML-Writer ist ein geeigneter Dienstanbieter verfügbar. Ein ungültiger XAML-Schemakontext kann den Nebeneffekt einer fehlerhaften Typzuordnung und damit des Diensts IXamlTypeResolver haben.

In .NET Framework 4 unterstützt einen alternativen Modus, in dem ein statisches Element zurückgegeben werden kann, das darauf basiert, StaticExtension dass es sich um Member den einfachen Membernamen und den als angegebenen Besitzertyp handeltMemberType, anstatt Member einen vollständigen Namen im Formulartypmember. bereitzustellen. Der Typlöser fungiert weiterhin, aber in diesem Fall werden und MemberMemberType grundsätzlich kombiniert: memberFullName = MemberType.FullName + "." + Member.

Gilt für: