Share via


StaticExtension.ProvideValue(IServiceProvider) Método

Definição

Retorna um valor de objeto a ser definido na propriedade na qual a extensão é aplicada. Para StaticExtension, o valor retornado é o valor estático avaliado para o membro estático solicitado.

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

Parâmetros

serviceProvider
IServiceProvider

Um objeto que pode fornecer serviços para a extensão de marcação. O provedor de serviços deve fornecer um serviço que implementa um resolvedor de tipo (IXamlTypeResolver).

Retornos

O valor estático a ser definido na propriedade na qual a extensão é aplicada.

Exceções

O valor member da extensão é null no momento da avaliação.

Alguma parte da cadeia de caracteres member não foi analisada corretamente

- ou -

serviceProvider não forneceu um serviço para IXamlTypeResolver

- ou -

O valor member não foi resolvido para um membro estático.

serviceProvider é null.

Comentários

Esse método dá suporte a recursos de linguagem XAML e geralmente não se destina a ser chamado diretamente. A implementação do processador XAML usa esse método para lidar corretamente com os valores de extensão durante a x:Static criação do objeto.

Essa implementação depende de serviços baseados no passado serviceProvider. serviceProvider não deve ser null. serviceProvider Espera-se que o objeto retorne um serviço para IXamlTypeResolver. No cenário normal de uso pelos leitores XAML padrão e gravadores XAML, um provedor de serviços adequado está disponível. Um contexto de esquema XAML inválido pode ter o efeito colateral do mapeamento de tipo de quebra e, portanto, do IXamlTypeResolver serviço.

No .NET Framework 4, StaticExtension dá suporte a um modo alternativo pelo qual ele pode retornar um membro estático com base em Member ser o nome de membro simples e seu tipo de propriedade fornecido como MemberType, em vez de Member fornecer um nome completo nomembro do tipo. de formulário. O resolvedor de tipos ainda atua, mas nesse caso o Member e MemberType são basicamente combinados: memberFullName = MemberType.FullName + "." + Member.

Aplica-se a