StaticExtension.ProvideValue(IServiceProvider) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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.
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
Parameters
- serviceProvider
- 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).
Returns
The static value to set on the property where the extension is applied.
Exceptions
The member
value for the extension is null
at the time of evaluation.
Some part of the member
string did not parse properly
-or-
serviceProvider
did not provide a service for IXamlTypeResolver
-or-
member
value did not resolve to a static member.
serviceProvider
is null
.
Remarks
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 serviceProvider
. serviceProvider
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
.