Compartilhar via


AmbientAttribute Classe

Definição

Especifica que uma propriedade ou tipo deve ser tratado como ambiente. O conceito de ambiente está relacionado a como os processadores XAML determinam os proprietários do tipo dos membros.

public ref class AmbientAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)>]
type AmbientAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)>]
type AmbientAttribute = class
    inherit Attribute
Public NotInheritable Class AmbientAttribute
Inherits Attribute
Herança
AmbientAttribute
Atributos

Comentários

Uma propriedade ambiente é uma propriedade em que o valor deve estar disponível no contexto do analisador ao criar um grafo de objeto, mas onde a pesquisa típica de membro de tipo é suspensa para fins do conjunto de nós XAML imediato que está sendo criado. Há dois cenários main para o conceito de ambiente:

  • Alguma outra propriedade do mesmo objeto influencia e qualifica como essa pesquisa objeto-propriedade deve funcionar.

  • A propriedade representa um mecanismo de adiamento maior e os recursos de ambiente para procurar um valor membro se estendem a todos os objetos contidos no objeto atual.

Esse atributo pode ser aplicado a propriedades específicas que têm contêineres esperados que habilitam um comportamento de pesquisa de propriedade ambiente ou podem ser aplicados a uma classe para habilitar o comportamento da propriedade ambiente em todos os casos desse tipo de valor para uma propriedade.

AmbientAttribute também pode ser aplicado a um método CLR, para dar suporte à atribuição de uma propriedade anexável XAML como ambiente. Isso é potencialmente necessário porque, em uma implementação CLR, uma propriedade anexada XAML é implementada/representada para reflexão como um padrão de acessador com get métodos e set . Não existe nenhuma propriedade CLR real para atributo, portanto, restringir o uso para AttributeTargetsProperty não teria habilitado a especificação de um membro anexável como ambiente. Para um membro anexável que você deseja relatar como ambiente, atribua o get acessador. Você não deve tentar atribuir métodos que não são especificamente compatíveis com métodos de membros anexáveis.

Em versões anteriores do .NET Framework, essa classe existia no assembly específico do WPF WindowsBase. No .NET Framework 4, AmbientAttribute está no assembly System.Xaml. Para obter mais informações, consulte Tipos migrados do WPF para o System.Xaml.

Tipos de ambiente (tipos em que AmbientAttribute é aplicado no nível do tipo) podem ser usados para determinadas situações de processamento XAML em que o tipo de uma propriedade precisa ser resolvido fora de ordem.

Cenários do Gravador de Objetos

Se você estiver definindo um gravador de objeto XAML e encontrar uma propriedade, um método ou um tipo em AmbientAttribute que é aplicado, você normalmente deve acessar um serviço para determinar o comportamento de pesquisa de propriedade ambiente pretendido necessário para gravar objetos. Para obter mais informações, consulte IAmbientProvider.

Conversores de valor

Conversores de tipo ou extensões de marcação podem precisar conhecer as informações de ambiente para processar propriedades que representam mapeamentos de tipo indireto, como propriedades que especificam membros ou tipos por nomes de cadeia de caracteres com ou sem qualificação. Nesse cenário, AmbientAttribute não se destina a ser usado diretamente para a lógica de código do conversor de valor. Em vez disso, o conversor de valor deve depender do comportamento de processamento do gravador XAML, que passará IAmbientProvider seus contextos de serviço para seus métodos de conversor de valor quando chamado.

Cenários do WPF para AmbientAttribute

  • Uma propriedade de um Style (TargetType) pode qualificar as pesquisas de nome de propriedade necessárias necessárias para localizar as referências de backup para nomes de propriedade em Setter.Property valores.

  • Todo o conteúdo dentro de uma Resources propriedade (itens de um ResourceDictionary), bem como o conteúdo do modelo, deve ser capaz de acessar outros pares como valores. Declarar toda Resources a propriedade como ambiente invoca a lógica que permite isso no analisador XAML do WPF.

Confira ResourceDictionary um exemplo de um cenário para definir AmbientAttribute no nível do tipo.

Construtores

AmbientAttribute()

Inicializa uma nova instância da classe AmbientAttribute.

Propriedades

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.

(Herdado de Attribute)

Métodos

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a

Confira também