AmbientAttribute Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
- 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
Resourcesegenskap (objekt i en ResourceDictionary) samt mallinnehåll bör kunna komma åt andra peer-datorer som värden. Att deklarera hela egenskapenResourcessom 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) |