Språk

IAmbientProvider Gränssnitt

Definition

Representerar en tjänst som kan returnera informationsobjekt om omgivande egenskaper eller omgivande typer för att skriva konverterare och påläggstillägg.

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

Kommentarer

Det här gränssnittet representerar den tjänst som kan hjälpa till att skriva konverterare och påläggstillägg för att hämta de omgivande egenskapsidentifierarna för XAML-typsystemet (XamlMember objekt). Tjänsten kan också hämta de omgivande egenskapsvärdena från klasser. Typer kan också vara omgivande; alla medlemmar som använder den typen som dess värde bör betraktas som omgivande.

Den här tjänsten returneras vanligtvis via ett anrop till GetService, som görs mot en kontextspecifik tjänstleverantör. Tjänstleverantören är allmänt tillgänglig för kontexter som behöver den, till exempel körningskoden för en värdekonverterare. Mer information finns i Type Converters and Markup Extensions for XAML and Service Contexts Available to Type Converters and Markup Extensions (Type Converters and Markup Extensions for XAML and Service Contexts Available to Type Converters and Markup Extensions ( Typkonverterare och markeringstillägg).

Om omgivande egenskaper

En omgivande egenskap är en egenskap vars egenskapsvärde ska vara tillgängligt för användning av konverterare och markeringstillägg som finns i XAML-nodstrukturen och i objektdiagrammet som skapats från den. Detta är relevant för en XAML-processor under objektskrivningsfasen för inläsningssökvägen eller serialiseringsfasen för en sparande sökväg.

I inläsningssökvägsfallet kan värdet för den omgivande egenskapen påverka värdet i objektdiagrammet för andra egenskaper som finns under det i en XAML-nodstruktur. När det bearbetas som en XAML-nodström innebär det omgivande konceptet att värdet för den omgivande egenskapen måste vara tillgängligt för typkonverterare och markeringstillägg från StartObject till EndObject. På samma sätt kan en typkonverterare som används för spara-sökvägen använda kunskap om den omgivande egenskapen och dess värde. Därför är XAML som produceras en bättre återgivning tur och retur.

För medlemmar i allmänhet anger XAML inte i vilken ordning medlemmar i ett objekt måste bearbetas. Alla värden för omgivande egenskaper måste dock först bearbetas av XAML-läsaren så att användning av typkonverterare och markeringstillägg som finns i andra egenskaper kan komma åt det via IAmbientProvider tjänsten.

DependsOn är ett liknande begrepp som också påverkar XAML-nodbearbetningsordningen. Kan dock DependsOn endast användas för peer-medlems- och nodrelationer. Det kan inte påverka alla underordnade. DependsOn Påverkar också objektgrafegenskapsinställningen direkt, medan den omgivande tekniken förlitar sig på typkonverterare eller tillägg för markering. I den omgivande tekniken måste det också finnas en specifik typkonverterare eller en definition av markeringstillägg som anger hur värdet för den omgivande egenskapen ska tolkas och tillämpas på objektet.

WPF-användningsanteckningar

Ett scenario med omgivande egenskaper som visas i WPF funktionsuppsättningen är Style.TargetType, vilket kan kvalificera nödvändiga egenskapsnamnsökningar för andra värden. I det här fallet Style.TargetType kvalificerar värdet de Setter.Property värden som finns i XAML-noderna under det. Setter.Property använder typkonverterarens beteende för en DependencyProperty. Det här beteendet kommer åt det omgivande Style.TargetType värdet genom att GetFirstAmbientValue fråga från en tjänstkontext som är tillgänglig för att skriva konverterare och tillägg för markering.

Ett scenario av omgivande typ som visas i WPF-funktionsuppsättningen är ResourceDictionary. ResourceDictionary har en MergedDictionaries egenskap som kan innehålla andra ResourceDictionary objekt som ska sammanfogas, och den avsedda ordningen för resursmatchning för det sammanslagna scenariot krockar med ordningen som typerna läses in i. ResourceDictionary AmbientAttribute gäller så att en XAML-processor kan bearbeta referenserna korrekt i en sammanfogad ordlista med StaticResource användning. StaticResource Mer specifikt är ett påläggstillägg som anropar GetAllAmbientValues.

Metoder

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

Returnerar en uppräkningsbar uppsättning informationsobjekt för omgivande egenskap för den begärda uppsättningen med typer och egenskaper.

GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[])

Returnerar en uppräkningsbar uppsättning informationsobjekt för omgivande egenskap för den begärda uppsättningen egenskaper.

GetAllAmbientValues(XamlType[])

Returnerar en uppräkningsbar uppsättning objektinstanser av möjliga omgivande typer för de begärda typerna.

GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[])

Returnerar ett enda informationsobjekt för omgivande egenskaper från den begärda uppsättningen egenskaper, baserat på vilken egenskap som först påträffas.

GetFirstAmbientValue(XamlType[])

Returnerar det första matchande objektet som är en möjlig omgivande typ för de begärda typerna.

Gäller för

Se även