StaticExtension.ProvideValue Method (IServiceProvider)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Returns an object value to set on the property where you apply this extension. For StaticExtension, the return value is the static value that is evaluated for the requested static member.

Namespace:   System.Windows.Markup
Assembly:  System.Xaml (in System.Xaml.dll)

public override object ProvideValue(
	IServiceProvider serviceProvider


Type: System.IServiceProvider

An object that can provide services for the markup extension. The service provider is expected to provide a service that implements a type resolver (IXamlTypeResolver).

Return Value

Type: System.Object

The static value to set on the property where the extension is applied.

Exception Condition

The member value for the extension is null at the time of evaluation.


Some part of the member string did not parse properly


serviceProvider did not provide a service for IXamlTypeResolver


member value did not resolve to a static member.


serviceProvider is null.

This method supports XAML language features and is generally not intended to be called directly. The XAML processor implementation uses this method to correctly handle the x:Static extension values during object creation.

This implementation relies on services that are based on the passed serviceProviderserviceProvider must not be null. The serviceProvider object is expected to return a service for IXamlTypeResolver. Under the normal scenario of use by the default XAML readers and XAML writers, a suitable service provider is available. An invalid XAML schema context might have the side effect of breaking type mapping and thus the IXamlTypeResolver service.

In .NET Framework 4, StaticExtension supports an alternate mode whereby it can return a static member based on Member being the simple member name and its owning type supplied as MemberType, rather than Member providing a full name in the form type.member. The type resolver still acts, but in this case the Member and MemberType are basically combined: memberFullName = MemberType.FullName + "." + Member.

.NET Framework
Available since 3.0
Return to top