AmbientAttribute Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica que uma propriedade ou tipo deve ser tratado como ambiente. O conceito ambiente relaciona-se com a forma como os processadores XAML determinam os proprietários de tipos 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
- Atributos
Observações
Uma propriedade ambiente é uma propriedade em que se espera que o valor esteja disponível no contexto do analisador ao criar um grafo de objetos, mas onde a consulta típica por membro de tipo é suspensa para efeitos de criação imediata do conjunto de nós XAML. Existem dois cenários principais para o conceito ambiente:
Alguma outra propriedade do mesmo objeto influencia e qualifica como essa pesquisa objeto-propriedade deve funcionar.
A propriedade representa um mecanismo de diferimento maior e as capacidades ambientais para consultar o valor de um membro estendem-se a todos os objetos contidos no objeto atual.
Este atributo pode ser aplicado a propriedades específicas que tenham contentores esperados que permitam um comportamento de pesquisa de propriedade ambiente, ou pode ser aplicado a uma classe para ativar o comportamento da propriedade ambiente em todos os casos desse tipo de valor para uma propriedade.
AmbientAttribute pode também ser aplicado a um método CLR, para suportar atribuir uma propriedade anexável XAML como ambiente. Isto é potencialmente necessário porque, numa implementação CLR, uma propriedade anexada XAML é implementada/representada à reflexão como um padrão de acesso com get e set métodos. Não existe propriedade real de CLR para atribuir, por isso restringir o uso de AttributeTargets para Property não teria permitido especificar um membro anexável como ambiente. Para um membro anexável que queres reportar como ambiente, atribui o get acessório. Não deve tentar atribuir métodos que não sejam especificamente sistemas de suporte a membros conectáveis.
Em versões anteriores do .NET Framework, esta classe existia no conjunto específico do WPF WindowsBase. Na .NET Framework 4, AmbientAttribute está na assembly System.Xaml. Para mais informações, veja Tipos Migrados de WPF para System.Xaml.
Os tipos ambient (tipos onde AmbientAttribute é aplicado ao nível do tipo) podem ser usados em certas situações de processamento XAML em que o tipo de propriedade precisa de ser resolvido fora de ordem.
Cenários Object Writer
Se estiver a definir um escritor de objetos XAML e encontrar uma propriedade, método ou tipo onde AmbientAttribute é aplicado, normalmente tem de aceder a um serviço para determinar o comportamento pretendido de pesquisa de propriedade ambiente necessário para escrever objetos. Para obter mais informações, veja IAmbientProvider.
Conversores de valor
Conversores de tipos ou extensões de marcação podem precisar de conhecer a informação ambiente para processar propriedades que representam mapeamentos indiretos de tipos, como propriedades que especificam membros ou tipos por nomes de cadeias com ou sem qualificação. Neste cenário, AmbientAttribute não se destina a ser usado diretamente para lógica de código de conversor de valor. Em vez disso, o conversor de valor deve basear-se no comportamento de processamento do escritor XAML, que irá passar IAmbientProvider nos seus contextos de serviço para os métodos do conversor de valor quando chamado.
Cenários WPF para AmbientAttribute
Uma propriedade de um Style (TargetType) pode qualificar as pesquisas necessárias de nomes de propriedade que são necessárias para encontrar as referências de base para nomes de propriedades em Setter.Property valores.
Todo o conteúdo dentro de uma
Resourcespropriedade (itens de um ResourceDictionary), bem como o conteúdo do modelo, devem poder aceder a outros pares como valores. Declarar toda a propriedadeResourcescomo ambiente invoca lógica que permite isto no analisador XAML WPF.
Veja ResourceDictionary um exemplo de cenário para definir AmbientAttribute ao nível do tipo.
Construtores
| Name | Description |
|---|---|
| AmbientAttribute() |
Inicializa uma nova instância da AmbientAttribute classe. |
Propriedades
| Name | Description |
|---|---|
| TypeId |
Quando implementado numa classe derivada, obtém um identificador único para esta Attribute. (Herdado de Attribute) |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| GetHashCode() |
Devolve o código de hash para esta instância. (Herdado de Attribute) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IsDefaultAttribute() |
Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute) |
| Match(Object) |
Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface. (Herdado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute) |