AmbientAttribute Classe

Definizione

Specifica che una proprietà o un tipo deve essere considerato di ambiente. l concetto di ambiente si riferisce al modo in cui i processori XAML determinano i proprietari dei tipi dei membri.

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
Ereditarietà
AmbientAttribute
Attributi

Commenti

Una proprietà di ambiente è una proprietà in cui si prevede che il valore sia disponibile nel contesto del parser durante la creazione di un oggetto grafico, ma in cui viene sospesa la tipica ricerca del membro di tipo ai fini della creazione immediata del set di nodi XAML. Esistono due scenari principali per il concetto di ambiente:

  • Alcune altre proprietà dello stesso oggetto influiscono e qualificano il funzionamento della ricerca della proprietà oggetto.

  • La proprietà rappresenta un meccanismo di differizione più ampio e le funzionalità di ambiente per la ricerca di un valore membro si estendono a tutti gli oggetti contenuti nell'oggetto corrente.

Questo attributo può essere applicato a proprietà specifiche con contenitori previsti che abilitano un comportamento di ricerca delle proprietà di ambiente o possono essere applicati a una classe per abilitare il comportamento della proprietà di ambiente in tutti i casi di tale tipo di valore per una proprietà.

AmbientAttribute può anche essere applicato a un metodo CLR per supportare l'attribuzione di una proprietà associabile XAML come ambiente. Ciò è potenzialmente necessario perché in un'implementazione CLR una proprietà associata XAML viene implementata/rappresentata per la reflection come modello di funzione di accesso con get i metodi e set . Non esiste alcuna proprietà CLR effettiva per l'attributo, pertanto la limitazione dell'utilizzo per AttributeTargets a Property non avrebbe abilitato la specifica di un membro associabile come ambiente. Per un membro associabile da segnalare come ambiente, attribuire la get funzione di accesso. Non è consigliabile tentare di attribuire metodi che non supportano in modo specifico i metodi dei membri associabili.

Nelle versioni precedenti di .NET Framework questa classe esisteva nell'assembly specifico di WPF WindowsBase. In .NET Framework 4 AmbientAttribute si trova nell'assembly System.Xaml. Per altre informazioni, vedere Types Migrated from WPF to System.Xaml.

I tipi di ambiente (tipi in cui AmbientAttribute viene applicato a livello di tipo) possono essere usati per determinate situazioni di elaborazione XAML in cui il tipo di una proprietà deve essere risolto in ordine non corretto.

Scenari di writer di oggetti

Se definisci un writer di oggetti XAML e riscontri una proprietà, un metodo o un tipo in cui AmbientAttribute viene applicato, in genere devi accedere a un servizio per determinare il comportamento di ricerca della proprietà di ambiente previsto necessario per la scrittura di oggetti. Per altre informazioni, vedere IAmbientProvider.

Convertitori di valori

I convertitori di tipi o le estensioni di markup potrebbero dover conoscere le informazioni di ambiente per elaborare proprietà che rappresentano mapping di tipi indiretti, ad esempio proprietà che specificano membri o tipi in base ai nomi di stringa con o senza qualificazione. In questo scenario AmbientAttribute , non è progettato per essere usato direttamente per la logica del codice del convertitore di valori. Invece, il convertitore di valori deve basarsi sul comportamento di elaborazione del writer XAML, che passerà IAmbientProvider i relativi contesti di servizio ai metodi del convertitore di valori quando viene chiamato.

Scenari WPF per AmbientAttribute

  • Una proprietà di (StyleTargetType) può qualificare le ricerche necessarie per i nomi di proprietà necessari per trovare i riferimenti sottostanti per i nomi delle proprietà nei Setter.Property valori.

  • Tutto il contenuto all'interno di una Resources proprietà (elementi di un ResourceDictionaryoggetto ) e il contenuto del modello deve essere in grado di accedere ad altri peer come valori. La dichiarazione dell'intera Resources proprietà come ambiente richiama la logica che lo abilita nel parser XAML WPF.

Vedere ResourceDictionary per un esempio di scenario per l'impostazione AmbientAttribute a livello di tipo.

Costruttori

AmbientAttribute()

Inizializza una nuova istanza della classe AmbientAttribute.

Proprietà

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)

Si applica a

Vedi anche