AmbientAttribute Clase

Definición

Especifica que una propiedad o un tipo debe tratarse como ambiente. El concepto de ambiente se relaciona con la forma en que los procesadores XAML determinan los propietarios de tipos de los miembros.

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
Herencia
AmbientAttribute
Atributos

Comentarios

Una propiedad ambiente es una propiedad en la que se espera que el valor esté disponible en el contexto del analizador al crear un gráfico de objetos, pero donde se suspende la búsqueda típica de miembros de tipo para fines del conjunto de nodos XAML inmediato que se está creando. Hay dos escenarios principales para el concepto de ambiente:

  • Alguna otra propiedad del mismo objeto influye y califica cómo debe funcionar esa búsqueda de propiedad de objeto.

  • La propiedad representa un mecanismo de aplazamiento mayor y las funcionalidades ambientales para buscar un valor miembro se extienden a todos los objetos contenidos en el objeto actual.

Este atributo se puede aplicar a propiedades específicas que tienen contenedores esperados que habilitan un comportamiento de búsqueda de propiedades ambientales o se pueden aplicar a una clase para habilitar el comportamiento de la propiedad ambiente en todos los casos de ese tipo de valor para una propiedad.

AmbientAttribute también se puede aplicar a un método CLR, para admitir la atribución de una propiedad adjunta a XAML como ambiente. Esto es posiblemente necesario porque, en una implementación de CLR, se implementa o representa una propiedad adjunta XAML en la reflexión como un patrón de descriptor de acceso con get los métodos y set . No existe ninguna propiedad CLR real para el atributo, por lo que restringir el uso de para AttributeTargetsProperty no habría habilitado la especificación de un miembro adjuntable como ambiente. Para un miembro adjuntable que quiera notificar como ambiente, atribule el descriptor de get acceso. No debe intentar atribuir métodos que no admitan específicamente métodos de miembros adjuntables.

En versiones anteriores de .NET Framework, esta clase existía en el ensamblado específico de WPF WindowsBase. En .NET Framework 4, AmbientAttribute está en el ensamblado System.Xaml. Para obtener más información, consulta Types Migrated from WPF to System.Xaml.

Los tipos de ambiente (tipos en AmbientAttribute los que se aplica en el nivel de tipo) se pueden usar para determinadas situaciones de procesamiento XAML en las que el tipo de una propiedad debe resolverse desordenados.

Escenarios de escritor de objetos

Si estás definiendo un escritor de objetos XAML y encuentras una propiedad, un método o un tipo donde AmbientAttribute se aplica, normalmente debes tener acceso a un servicio para determinar el comportamiento de búsqueda de propiedades ambientales previsto que se necesita para escribir objetos. Para obtener más información, vea IAmbientProvider.

Convertidores de valores

Es posible que los convertidores de tipos o las extensiones de marcado necesiten conocer la información ambiental para procesar propiedades que representan asignaciones de tipos indirectos, como propiedades que especifican miembros o tipos por nombres de cadena con o sin cualificación. En este escenario, AmbientAttribute no está pensado para usarse directamente para la lógica de código del convertidor de valores. En su lugar, el convertidor de valores debe basarse en el comportamiento de procesamiento del escritor XAML, que pasará IAmbientProvider sus contextos de servicio a los métodos del convertidor de valores cuando se llame a .

Escenarios de WPF para AmbientAttribute

  • Una propiedad de (StyleTargetType) puede calificar las búsquedas de nombres de propiedad necesarias que son necesarias para buscar las referencias de respaldo para los nombres de propiedad en Setter.Property los valores.

  • Todo el contenido de una Resources propiedad (elementos de un ResourceDictionary), así como el contenido de la plantilla, debe poder tener acceso a otros elementos del mismo nivel como valores. Declarar toda Resources la propiedad como ambiente invoca lógica que lo habilita en el analizador XAML de WPF.

Vea ResourceDictionary un ejemplo de un escenario para establecer AmbientAttribute en el nivel de tipo.

Constructores

AmbientAttribute()

Inicializa una nueva instancia de la clase AmbientAttribute.

Propiedades

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.

(Heredado de Attribute)

Métodos

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.

(Heredado de Attribute)
Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

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

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

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

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).

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

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.

(Heredado de Attribute)

Se aplica a

Consulte también