AmbientAttribute Klas

Definitie

Hiermee geeft u op dat een eigenschap of type moet worden behandeld als omgeving. Het omgevingsconcept heeft betrekking op hoe XAML-processors typeeigenaren van leden bepalen.

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
Overname
AmbientAttribute
Kenmerken

Opmerkingen

Een omgevingseigenschap is een eigenschap waarvan wordt verwacht dat de waarde beschikbaar is in de parsercontext bij het maken van een objectgrafiek, maar waarbij typische zoekactie voor typeleden wordt onderbroken voor doeleinden van de onmiddellijke XAML-knooppuntset die wordt gemaakt. Er zijn twee hoofdscenario's voor het omgevingsconcept:

  • Een andere eigenschap van hetzelfde object beïnvloedt en in aanmerking komt hoe die object-eigenschap opzoeken moet werken.

  • De eigenschap vertegenwoordigt een groter uitstelmechanisme en de omgevingsmogelijkheden voor het opzoeken van een lidwaarde worden uitgebreid naar alle objecten in het huidige object.

Dit kenmerk kan worden toegepast op specifieke eigenschappen met verwachte containers die het opzoeken van omgevingseigenschappen inschakelen, of kunnen worden toegepast op een klasse om het gedrag van de omgevingseigenschap in alle gevallen van dat waardetype voor een eigenschap in te schakelen.

AmbientAttribute kan ook worden toegepast op een CLR-methode, ter ondersteuning van het toewijzen van een XAML-koppelbare eigenschap als omgeving. Dit is mogelijk nodig omdat in een CLR-implementatie een gekoppelde XAML-eigenschap wordt geïmplementeerd/weergegeven als een accessorpatroon met get en set methoden. Er bestaat geen werkelijke CLR-eigenschap voor kenmerk, dus het beperken van het gebruik voor AttributeTargets ton Property is niet ingeschakeld voor het opgeven van een koppelbaar lid als omgeving. Voor een koppelbaar lid dat u als omgeving wilt rapporteren, moet u de get toegangsmedewerker toewijzen. Probeer geen methoden toe te passen die niet specifiek ondersteuning bieden voor methoden van koppelbare leden.

In eerdere versies van het .NET Framework bestond deze klasse in de WPF-specifieke assembly WindowsBase. In .NET Framework 4 bevindt AmbientAttribute zich in de System.Xaml-assembly. Zie Types gemigreerd van WPF naar System.Xaml voor meer informatie.

Omgevingstypen (typen die AmbientAttribute op typeniveau worden toegepast) kunnen worden gebruikt voor bepaalde XAML-verwerkingssituaties waarbij het type eigenschap buiten de volgorde moet worden opgelost.

Scenario's voor objectschrijvers

Als u een XAML-objectschrijver definieert en u een eigenschap, methode of type tegenkomt waar AmbientAttribute wordt toegepast, moet u doorgaans toegang krijgen tot een service om het beoogde opzoekgedrag voor omgevingseigenschappen te bepalen dat nodig is voor het schrijven van objecten. Zie IAmbientProvider voor meer informatie.

Waardeconversieprogramma's

Typeconversieprogramma's of markeringsextensies moeten mogelijk de omgevingsinformatie kennen om eigenschappen te verwerken die indirecte typetoewijzingen vertegenwoordigen, zoals eigenschappen die leden of typen opgeven op tekenreeksnamen met of zonder kwalificatie. In dit scenario AmbientAttribute is het niet bedoeld om rechtstreeks te worden gebruikt voor codelogica voor waardeconversieprogramma's. In plaats daarvan moet het waardeconversieprogramma afhankelijk zijn van het gedrag van de XAML Writer-schrijfbewerking, dat de servicecontexten doorgeeft IAmbientProvider aan uw methoden voor het converteren van waarden wanneer deze worden aangeroepen.

WPF scenario's voor AmbientAttribute

  • Een eigenschap van een Style (TargetType) kan de benodigde eigenschapsnaamzoekacties kwalificeren die nodig zijn om de back-upverwijzingen voor eigenschapsnamen in Setter.Property waarden te vinden.

  • Alle inhoud binnen een Resources eigenschap (items van een ResourceDictionary) en sjablooninhoud moet toegang hebben tot andere peers als waarden. Het declareren van de hele eigenschap Resources als omgeving roept logica aan die dit mogelijk maakt in de WPF XAML-parser.

Zie ResourceDictionary een voorbeeld van een scenario voor het instellen AmbientAttribute op typeniveau.

Constructors

Name Description
AmbientAttribute()

Initialiseert een nieuw exemplaar van de AmbientAttribute klasse.

Eigenschappen

Name Description
TypeId

Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id.

(Overgenomen van Attribute)

Methoden

Name Description
Equals(Object)

Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
GetHashCode()

Retourneert de hash-code voor dit exemplaar.

(Overgenomen van Attribute)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsDefaultAttribute()

Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse.

(Overgenomen van Attribute)
Match(Object)

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

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

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van Attribute)

Van toepassing op

Zie ook