IAmbientProvider Interface

Definitie

Vertegenwoordigt een service die informatie-items over omgevingseigenschappen of omgevingstypen kan retourneren om conversieprogramma's en markeringsextensies te typen.

public interface class IAmbientProvider
public interface IAmbientProvider
type IAmbientProvider = interface
Public Interface IAmbientProvider

Opmerkingen

Deze interface vertegenwoordigt de service waarmee u conversieprogramma's en markeringsextensies kunt typen om de omgevingseigenschaps-id's voor het XAML-typesysteem (XamlMember objecten) op te halen. De service kan ook de waarden van de omgevingseigenschap ophalen uit klassen. Typen kunnen ook omgevings- en omgevingstypen zijn; elk lid dat dat type als waarde gebruikt, moet worden beschouwd als omgevingswaarde.

Deze service wordt doorgaans geretourneerd via een aanroep naar GetService, die wordt uitgevoerd op basis van een contextspecifieke serviceprovider. De serviceprovider is algemeen beschikbaar voor contexten die deze nodig hebben, zoals de uitvoeringscode van een waardeconversieprogramma. Zie typeconversieprogramma's en markeringsextensies voor XAML - en servicecontexten die beschikbaar zijn voor typeconversieprogramma's en markeringsextensies voor meer informatie.

Over omgevingseigenschappen

Een omgevingseigenschap is een eigenschap waarvan de eigenschapswaarde beschikbaar moet zijn voor het typen van conversie- en markeringsuitbreidingen die aanwezig zijn in de XAML-knooppuntstructuur en in de objectgrafiek die ermee is gemaakt. Dit is relevant voor een XAML-processor tijdens de objectschrijffase van het laadpad of de serialisatiefase van een opslagpad.

In het geval van het laadpad kan de waarde van de omgevingseigenschap van invloed zijn op de waarde in de objectgrafiek van andere eigenschappen die eronder bestaan in een XAML-knooppuntstructuur. Wanneer het wordt verwerkt als een XAML-knooppuntstroom, betekent het omgevingsconcept dat de waarde van de omgevingseigenschap beschikbaar moet zijn voor het typen van conversieprogramma's en markeringen van StartObject naar EndObject. Op dezelfde manier kan een typeconversieprogramma dat wordt gebruikt voor het opslagpad gebruikmaken van kennis van de omgevingseigenschap en de waarde ervan. Daarom is de XAML die wordt geproduceerd een betere retourweergave.

Voor leden in het algemeen geeft XAML niet de volgorde op waarin leden van een object moeten worden verwerkt. Elke waarde van de omgevingseigenschap moet echter eerst worden verwerkt door de XAML-lezer, zodat het type conversie- en markeringsuitbreidingsgebruik dat in andere eigenschappen is opgenomen, toegankelijk is via de IAmbientProvider service.

DependsOn is een vergelijkbaar concept dat ook invloed heeft op de XAML-knooppuntverwerkingsvolgorde. Kan DependsOn echter alleen worden gebruikt voor peer-lid- en knooppuntrelaties. Het kan geen invloed hebben op alle afstammelingen. DependsOn Heeft ook rechtstreeks invloed op de instelling van objectgrafiekeigenschappen; terwijl de omgevingstechniek afhankelijk is van typeconversieprogramma's of markeringsextensies. In de omgevingstechniek moet er ook een specifieke typeconversie- of markeringsextensiedefinitie zijn die aangeeft hoe de waarde van de omgevingseigenschap moet worden geïnterpreteerd en toegepast op het object.

Opmerkingen bij WPF-gebruik

Een omgevingseigenschapsscenario dat wordt geïllustreerd in de WPF functieset is Style.TargetType, die de benodigde eigenschapsnaamzoekacties voor andere waarden kan kwalificeren. In dit geval komt de Style.TargetType waarde in aanmerking voor de Setter.Property waarden die zich in de onderliggende XAML-knooppunten bevinden. Setter.Property gebruikt het gedrag van het type conversieprogramma voor een DependencyProperty. Dit gedrag heeft toegang tot de omgevingswaarde door query's Style.TargetType uit te voeren GetFirstAmbientValue vanuit een servicecontext die beschikbaar is om conversieprogramma's en markeringsextensies te typen.

Een omgevingstypescenario dat wordt geïllustreerd in de WPF functieset is ResourceDictionary. ResourceDictionary heeft een MergedDictionaries eigenschap die andere ResourceDictionary objecten kan bevatten om samen te voegen en de beoogde volgorde van resourceomzetting voor het samengevoegde scenario botst met de volgorde die typen worden geladen. ResourceDictionary is van toepassing AmbientAttribute zodat een XAML-processor de verwijzingen in een samengevoegde woordenlijst correct kan verwerken met StaticResource gebruik. Specifiek, StaticResource is een markeringsextensie, die aanroept GetAllAmbientValues.

Methoden

Name Description
GetAllAmbientValues(IEnumerable<XamlType>, Boolean, IEnumerable<XamlType>, XamlMember[])

Retourneert een inventariserbare set omgevingseigenschapsinformatie-items voor de aangevraagde set typen en eigenschappen.

GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[])

Retourneert een inventariserbare set omgevingsinformatie-items voor de aangevraagde set eigenschappen.

GetAllAmbientValues(XamlType[])

Retourneert een opsommingsbare set objectexemplaren van mogelijke omgevingstypen voor de aangevraagde typen.

GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[])

Retourneert één informatie-item voor omgevingseigenschappen uit de aangevraagde set eigenschappen, op basis van welke eigenschap het eerst wordt aangetroffen.

GetFirstAmbientValue(XamlType[])

Retourneert het eerste overeenkomende object dat een mogelijk omgevingstype is voor de aangevraagde typen.

Van toepassing op

Zie ook