AmbientAttribute Klass

Definition

Anger att en egenskap eller typ ska behandlas som omgivande. Det omgivande konceptet relaterar till hur XAML-processorer avgör typägare av medlemmar.

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
Arv
AmbientAttribute
Attribut

Kommentarer

En omgivande egenskap är en egenskap där värdet förväntas vara tillgängligt i parserkontexten när du skapar ett objektdiagram, men där typisk typmedlemsökning pausas i syfte att skapa den omedelbara XAML-noduppsättningen. Det finns två huvudscenarier för det omgivande konceptet:

  • En annan egenskap för samma objekt påverkar och kvalificerar hur sökningen av objektegenskap ska fungera.

  • Egenskapen representerar en större uppskjutningsmekanism och de omgivande funktionerna för att leta upp ett medlemsvärde utökas till alla objekt som finns i det aktuella objektet.

Det här attributet kan tillämpas på specifika egenskaper som har förväntade containrar som aktiverar ett beteende för sökning av omgivande egenskaper, eller som kan tillämpas på en klass för att aktivera beteendet för omgivande egenskap i alla fall av den värdetypen för en egenskap.

AmbientAttribute kan också tillämpas på en CLR-metod för att ge stöd för att tillskriva en XAML-bifogad egenskap som omgivande. Detta är potentiellt nödvändigt eftersom en XAML-kopplad egenskap implementeras/representeras för reflektion som ett accessormönster med get och set metoder i en CLR-implementering. Det finns ingen faktisk CLR-egenskap att attributera, så om du begränsar användningen för AttributeTargets till Property skulle det inte ha aktiverats att ange en bifogad medlem som omgivande. För en bifogad medlem som du vill rapportera som omgivande, tillskriver du get accessorn. Du bör inte försöka attributmetoder som inte specifikt stöder metoder för anslutbara medlemmar.

I tidigare versioner av .NET Framework fanns den här klassen i den WPF specifika sammansättningen WindowsBase. I .NET Framework 4 finns AmbientAttribute i System.Xaml-sammansättningen. Mer information finns i Types Migrerad från WPF till System.Xaml.

Omgivande typer (typer där AmbientAttribute tillämpas på typnivå) kan användas för vissa XAML-bearbetningssituationer där typen av en egenskap måste lösas i fel ordning.

Objektskrivare scenarier

Om du definierar en XAML-objektskrivare och du stöter på en egenskap, metod eller typ där AmbientAttribute används, måste du vanligtvis komma åt en tjänst för att fastställa det avsedda uppslagsbeteendet för omgivande egenskaper som behövs för att skriva ut objekt. Mer information finns i IAmbientProvider.

Värdekonverterare

Typkonverterare eller markeringstillägg kan behöva känna till den omgivande informationen för att bearbeta egenskaper som representerar indirekta typmappningar, till exempel egenskaper som anger medlemmar eller typer efter strängnamn med eller utan kvalificering. I det här scenariot AmbientAttribute är inte avsett att användas direkt för värdekonverterarens kodlogik. I stället bör värdekonverteraren förlita sig på XAML-skrivarbearbetningsbeteendet, som i sina tjänstkontexter skickas IAmbientProvider till dina värdekonverteraremetoder när det anropas.

WPF scenarier för AmbientAttribute

  • En egenskap för en Style (TargetType) kan kvalificera nödvändiga uppslag för egenskapsnamn som behövs för att hitta bakgrundsreferenserna för egenskapsnamn i Setter.Property värden.

  • Allt innehåll i en Resources egenskap (objekt i en ResourceDictionary) samt mallinnehåll bör kunna komma åt andra peer-datorer som värden. Att deklarera hela egenskapen Resources som omgivande anropar logik som aktiverar detta i WPF XAML-parser.

Se ResourceDictionary ett exempel på ett scenario för inställning AmbientAttribute på typnivå.

Konstruktorer

Name Description
AmbientAttribute()

Initierar en ny instans av AmbientAttribute klassen.

Egenskaper

Name Description
TypeId

När den implementeras i en härledd klass hämtar du en unik identifierare för den här Attribute.

(Ärvd från Attribute)

Metoder

Name Description
Equals(Object)

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
GetHashCode()

Returnerar hash-koden för den här instansen.

(Ärvd från Attribute)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IsDefaultAttribute()

När den åsidosättas i en härledd klass anger du om värdet för den här instansen är standardvärdet för den härledda klassen.

(Ärvd från Attribute)
Match(Object)

När den åsidosätts i en härledd klass returneras ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

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

Mappar en uppsättning namn till en motsvarande uppsättning av sändningsidentifierare.

(Ärvd från Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hämtar typinformationen för ett objekt, som kan användas för att hämta typinformationen för ett gränssnitt.

(Ärvd från Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1).

(Ärvd från Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Ger åtkomst till egenskaper och metoder som exponeras av ett objekt.

(Ärvd från Attribute)

Gäller för

Se även