Condividi tramite


IAmbientProvider Interfaccia

Definizione

Rappresenta un servizio che può restituire informazioni sulle proprietà o sui tipi di ambiente ai convertitori di tipi ed estensioni di markup.

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

Commenti

Questa interfaccia rappresenta il servizio che consente ai convertitori di tipi e alle estensioni di markup di ottenere gli identificatori di proprietà ambientale per il sistema di tipi XAML (XamlMember oggetti). Il servizio può anche ottenere i valori delle proprietà di ambiente dalle classi. I tipi possono anche essere ambientali; qualsiasi membro che usa tale tipo come valore deve essere considerato ambiente.

Questo servizio viene in genere restituito tramite una chiamata a GetService, che viene effettuata su un provider di servizi specifico del contesto. Il provider di servizi è disponibile a livello generale per i contesti necessari, ad esempio il codice di esecuzione di un convertitore di valori. Per altre informazioni, vedere Convertitori di tipi e estensioni di markup per contesti di servizio e XAML disponibili per convertitori di tipi e estensioni di markup.

Informazioni sulle proprietà di ambiente

Una proprietà ambient è una proprietà il cui valore della proprietà deve essere disponibile per il convertitore di tipi e l'utilizzo delle estensioni di markup esistenti nella struttura del nodo XAML e nel grafico a oggetti creato da esso. Ciò è rilevante per un processore XAML durante la fase di scrittura dell'oggetto del percorso di carico o la fase di serializzazione di un percorso di salvataggio.

Nel caso del percorso di carico, il valore della proprietà ambient potrebbe influire sul valore nel grafico degli oggetti di altre proprietà esistenti sotto di esso in una struttura di nodo XAML. Quando elaborato come flusso di nodi XAML, il concetto di ambiente indica che il valore della proprietà ambientale deve essere disponibile per i convertitori di tipi e le estensioni di markup da StartObject a EndObject. Analogamente, un convertitore di tipi usato per il percorso di salvataggio può usare la conoscenza della proprietà ambiente e del relativo valore. Pertanto, il codice XAML prodotto è una rappresentazione di round trip migliore.

Per i membri in generale, XAML non specifica l'ordine in cui i membri di un oggetto devono essere elaborati. Tuttavia, qualsiasi valore della proprietà ambientale deve essere elaborato prima dal lettore XAML in modo che l'utilizzo del convertitore di tipi e delle estensioni di markup contenuti in altre proprietà possa accedervi tramite il IAmbientProvider servizio.

DependsOn è un concetto simile che influenza anche l'ordine di elaborazione dei nodi XAML. Tuttavia, DependsOn può essere usato solo per le relazioni tra membri e nodi peer. Non può influire su tutti i discendenti. Inoltre, DependsOn influisce direttamente sull'impostazione della proprietà del grafico degli oggetti, mentre la tecnica ambientale si basa su convertitori di tipi o estensioni di markup. Nella tecnica ambientale deve essere presente anche una definizione specifica di convertitore di tipi o estensione di markup che specifica il modo in cui il valore della proprietà ambientale deve essere interpretato e applicato all'oggetto.

Note sull'utilizzo di WPF

Uno scenario di proprietà ambientale illustrato nel set di funzionalità WPF è Style.TargetType, che può qualificare le ricerche necessarie per i nomi delle proprietà necessarie per altri valori. In questo caso, il Style.TargetType valore qualifica i Setter.Property valori che si trovano nei nodi XAML sottostanti. Setter.Property usa il comportamento del convertitore di tipi per un DependencyPropertyoggetto . Questo comportamento accede al valore ambientale Style.TargetType eseguendo una query GetFirstAmbientValue da un contesto di servizio disponibile per i convertitori di tipi e le estensioni di markup.

Uno scenario di tipo di ambiente illustrato nel set di funzionalità WPF è ResourceDictionary. ResourceDictionary ha una MergedDictionaries proprietà che può contenere altri ResourceDictionary oggetti da unire e l'ordine previsto di risoluzione delle risorse per lo scenario unito si scontra con l'ordine di caricamento dei tipi. ResourceDictionary AmbientAttribute si applica in modo che un processore XAML possa elaborare correttamente i riferimenti in un dizionario unito con StaticResource gli usi. In particolare, StaticResource è un'estensione di markup, che chiama GetAllAmbientValues.

Metodi

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

Restituisce un set enumerabile di informazioni sulle proprietà di ambiente per il set di tipi e proprietà richiesto.

GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[])

Restituisce un set enumerabile di informazioni sulle proprietà o sui tipi di ambiente per il set di proprietà richiesto.

GetAllAmbientValues(XamlType[])

Restituisce un set enumerabile di istanze di oggetti di possibili tipi di ambiente per i tipi richiesti.

GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[])

Restituisce le informazioni su un singolo tipo o su una singola proprietà di ambiente dal set di proprietà richiesto, in base alla proprietà rilevata per prima.

GetFirstAmbientValue(XamlType[])

Restituisce il primo oggetto corrispondente, ovvero un possibile tipo di ambiente per i tipi richiesti.

Si applica a

Vedi anche