Condividi tramite


XamlMember Classe

Definizione

Fornisce l'identificatore di sistema dei tipi XAML per i membri dei tipi XAML. L'identificatore viene utilizzato dai reader e dai writer XAML durante l'elaborazione dei nodi membri (quando il reader XAML viene posizionato su un oggetto StartMember) e anche per la logica di sistema di tipo XAML generale.

public ref class XamlMember : IEquatable<System::Xaml::XamlMember ^>
public class XamlMember : IEquatable<System.Xaml.XamlMember>
type XamlMember = class
    interface IEquatable<XamlMember>
Public Class XamlMember
Implements IEquatable(Of XamlMember)
Ereditarietà
XamlMember
Derivato
Implementazioni

Commenti

XamlMember può usare tre metodologie per restituire informazioni su un membro XAML: reflection CLR (Common Language Runtime) standard; una tecnica di reflection di sola riferimento che chiama le API interne che usano flag di bit ottimizzati; o chiamando in override virtuali dell'API Lookup* fornita da possibili XamlMember sottoclassi. Per la maggior parte degli usi delle API dei servizi XAML di .NET Framework e dell'API XamlMember , usi il contesto dello schema XAML predefinito. Il contesto dello schema XAML predefinito per i servizi XAML di .NET Framework usa il supporto CLR per il sistema dei tipi. In questo modo, i lettori XAML e i writer XAML possono lavorare con qualsiasi tipo o membro definito in o altrimenti disponibile per CLR e le relative tecniche di reflection.

API Lookup* e classi derivate XamlMember

XamlMember definisce diversi membri virtuali che le classi derivate potrebbero eseguire l'override. Questi membri hanno nomi che iniziano sempre con la stringa Lookup. Il resto del nome dell'API fa quindi riferimento alla proprietà influenzata dal metodo virtuale. Ad esempio, una XamlMember classe derivata può eseguire l'override per influenzare ciò che la proprietà TargetType definita dalla base restituisce LookupTargetType in una classe derivata. È possibile stimare i valori restituiti per tali proprietà in XamlMember o classi derivate esistenti leggendo la documentazione per i metodi pertinenti Lookup* .

Lo scopo dei Lookup* metodi è fornire una tecnica di estensione del sistema di tipi XAML che incorpora la XamlMember classe base. Derivando dai XamlMember membri virtuali ed eseguendo l'override Lookup dei membri virtuali, puoi definire il concetto di membro XAML per uno schema XAML in un sistema di tipi XAML senza essere associato alle specifiche di un sistema di tipi di supporto o di una tecnologia. Puoi anche usare un contesto dello schema XAML fornito in questo schema e restituire comunque i risultati desiderati.

Si consideri ad esempio la XamlMember proprietà IsWritePublic. Questa proprietà informa i chiamanti che le operazioni come l'uso di per la XamlWriter serializzazione possono scrivere un valore per questo membro in un oggetto di destinazione. Nell'implementazione predefinita, la determinazione del fatto che il membro è scrivibile tramite tecniche di reflection contro CLR Type sottostante e i relativi membri ().MemberInfo Di conseguenza, per impostazione predefinita, il sistema di tipi XAML dipende dal sistema di tipi CLR. È tuttavia possibile rimuovere questa dipendenza per la segnalazione del sistema di tipi XAML di IsWritePublic eseguendo l'override dell'API LookupIsWritePublic. All'interno dell'override puoi usare altre decisioni, ad esempio i metadati specifici della tecnologia, una tabella di ricerca primaria ottimizzata per un vocabolario XAML fisso o un'ampia gamma di altre strategie per determinare se un membro XAML è scrivibile nel vocabolario XAML.

Costruzione di XamlMember senza contesto dello schema XAML

La maggior parte dei costruttori di XamlMember richiede come XamlSchemaContext parte dell'inizializzazione. È XamlSchemaContext inoltre necessario per molte operazioni interne XamlSchemaContext , ad esempio per ottenere informazioni inoltrate dal tipo di supporto. Quando si usa l'APIXamlMember, in genere si dispone di un XamlSchemaContext oggetto disponibile da un costrutto circostante, ad esempio .XamlWriter In questo caso, puoi passare il XamlSchemaContext riferimento a tutte le chiamate di sistema di tipi XAML che richiedono un contesto dello schema XAML.

Un costruttore specifico, XamlMember(String, XamlType, Boolean), non richiede un oggetto XamlSchemaContext. Tuttavia, un oggetto XamlMember costruito con la XamlMember(String, XamlType, Boolean) firma restituisce true per IsUnknown.

Per un percorso di caricamento che include XamlObjectWriter, tale membro non può essere scritto in un oggetto grafico. Usando l'implementazione dei servizi XAML di .NET Framework, la XamlObjectWriter.WriteStartMember chiamata genera un'eccezione XamlObjectWriterException quando i report true pertinenti XamlMember per IsUnknown.

Non è consigliabile costruire un oggetto XamlMember che abbia un valore true per a IsUnknown meno che l'implementazione non possa gestire le eccezioni da XamlObjectWritero che siano disponibili altri modi per modificare il XamlObjectWriter comportamento. Ad esempio, una o più delle condizioni seguenti potrebbero essere vere per l'implementazione:

  • Il contesto dello schema XAML è disponibile in un secondo momento.
  • Si usa un modello invoker membro.
  • Si esegue deliberatamente l'override XamlObjectWriter.WriteStartMember in un writer XAML personalizzato.

Costruttori

XamlMember(EventInfo, XamlSchemaContext)

Inizializza una nuova istanza della classe XamlMember utilizzando EventInfo del sistema di tipi CLR e un oggetto XamlSchemaContext.

XamlMember(EventInfo, XamlSchemaContext, XamlMemberInvoker)

Inizializza una nuova istanza della classe XamlMember utilizzando l'oggetto EventInfo del sistema di tipo CRL e un oggetto XamlSchemaContext, incluse le informazioni sull'oggetto XamlMemberInvoker.

XamlMember(PropertyInfo, XamlSchemaContext)

Inizializza una nuova istanza della classe XamlMember utilizzando PropertyInfo del sistema di tipi CLR e un oggetto XamlSchemaContext.

XamlMember(PropertyInfo, XamlSchemaContext, XamlMemberInvoker)

Inizializza una nuova istanza della classe XamlMember utilizzando l'oggetto PropertyInfo di reflection e un oggetto XamlSchemaContext, incluse le informazioni sull'oggetto XamlMemberInvoker.

XamlMember(String, MethodInfo, MethodInfo, XamlSchemaContext)

Inizializza una nuova istanza della classe XamlMember per un oggetto XamlMember che rappresenta una proprietà associabile.

XamlMember(String, MethodInfo, MethodInfo, XamlSchemaContext, XamlMemberInvoker)

Inizializza una nuova istanza della classe XamlMember per un oggetto XamlMember che rappresenta una proprietà associabile, incluse le informazioni sull'oggetto XamlMemberInvoker.

XamlMember(String, MethodInfo, XamlSchemaContext)

Inizializza una nuova istanza della classe XamlMember per un oggetto XamlMember che rappresenta un evento associabile.

XamlMember(String, MethodInfo, XamlSchemaContext, XamlMemberInvoker)

Inizializza una nuova istanza della classe XamlMember per un oggetto XamlMember che rappresenta un evento associabile, incluse le informazioni sull'oggetto XamlMemberInvoker.

XamlMember(String, XamlType, Boolean)

Inizializza una nuova istanza della classe XamlMember utilizzando il nome di una stringa e le informazioni sull'oggetto XamlType dichiarante. Un oggetto XamlMember costruito con questa firma ha limitazioni significative.

Proprietà

DeclaringType

Ottiene l'oggetto XamlType per il tipo che dichiara il membro associato all'oggetto XamlMember.

DeferringLoader

Ottiene un oggetto XamlValueConverter<TConverterBase>, che viene utilizzato per il caricamento posticipato degli oggetti XAML dichiarati.

DependsOn

Ottiene un elenco di oggetti XamlMember. Tali oggetti segnalano i membri in cui sono presenti le relazioni di dipendenza per l'ordine di inizializzazione in relazione all'oggetto XamlMember.

Invoker

Ottiene l'implementazione di XamlMemberInvoker associata all'oggetto XamlMember.

IsAmbient

Ottiene un valore che indica se l'oggetto XamlMember è segnalato come proprietà di ambiente.

IsAttachable

Ottiene un valore che indica se l'oggetto XamlMember è un membro associabile.

IsDirective

Ottiene un valore che indica se l'oggetto XamlMember è una direttiva XAML.

IsEvent

Ottiene un valore che indica se l'oggetto XamlMember rappresenta un membro di evento.

IsNameValid

Ottiene un valore che indica se l'oggetto XamlMember viene inizializzato con una stringa xamlName valida come Name.

IsReadOnly

Ottiene un valore che indica se l'oggetto XamlMember rappresenta un membro di sola lettura.

IsReadPublic

Ottiene un valore che indica se l'oggetto XamlMember rappresenta un membro con una funzione di accesso get pubblica che può essere chiamata.

IsUnknown

Ottiene un valore che indica se il membro non può essere risolto dal sistema di supporto utilizzato per la risoluzione del tipo e del membro.

IsWriteOnly

Ottiene un valore che indica se l'oggetto XamlMember rappresenta un membro di sola scrittura.

IsWritePublic

Ottiene un valore che indica se l'oggetto XamlMember rappresenta un membro che dispone di una funzione di accesso set pubblica che può essere chiamata.

MarkupExtensionBracketCharacters

Definisce i caratteri parentesi quadra di apertura e chiusura per un'estensione di markup.

Name

Ottiene la stringa del nome xamlName che dichiara l'oggetto XamlMember.

PreferredXamlNamespace

Ottiene il singolo URI dello spazio dei nomi XAML che identifica lo spazio dei nomi XAML primario per l'oggetto XamlMember.

SerializationVisibility

Ottiene un valore di DesignerSerializationVisibility che indica come una finestra di progettazione visiva deve elaborare il membro.

TargetType

Ottiene l'oggetto XamlType del tipo in cui può essere presente l'oggetto XamlMember.

Type

Ottiene l'oggetto XamlType del tipo utilizzato dal membro.

TypeConverter

Ottiene un oggetto XamlValueConverter<TConverterBase> che può essere utilizzato per la costruzione della conversione di tipi degli oggetti XAML dichiarati.

UnderlyingMember

Ottiene l'oggetto MemberInfo del sistema del tipo CRL che è disponibile per un membro costruito da PropertyInfo, MethodInfo o EventInfo.

ValueSerializer

Ottiene un oggetto XamlValueConverter<TConverterBase> che viene utilizzato per la serializzazione di valori degli oggetti XAML dichiarati.

Metodi

Equals(Object)

Indica se l'oggetto corrente è uguale a un altro oggetto.

Equals(XamlMember)

Indica se l'oggetto corrente è uguale a un altro oggetto dello stesso tipo.

GetHashCode()

Restituisce il codice hash per questo oggetto.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
GetXamlNamespaces()

Restituisce un elenco di spazi dei nomi XAML in cui può essere presente questo membro XAML.

LookupCustomAttributeProvider()

Quando implementato in una classe derivata, restituisce un'implementazione di ICustomAttributeProvider.

LookupDeferringLoader()

Restituisce un oggetto XamlValueConverter<TConverterBase> utilizzato per il caricamento posticipato degli oggetti XAML dichiarati.

LookupDependsOn()

Restituisce un elenco di oggetti XamlMember. Le voci nell'elenco segnalano i membri in cui sono presenti le relazioni di dipendenza per l'ordine di inizializzazione in relazione all'oggetto XamlMember.

LookupInvoker()

Restituisce un oggetto XamlMemberInvoker associato a XamlMember.

LookupIsAmbient()

Restituisce un valore che indica se l'oggetto XamlMember viene segnalato come proprietà di ambiente.

LookupIsEvent()

Restituisce un valore che indica se l'oggetto XamlMember rappresenta un evento.

LookupIsReadOnly()

Restituisce un valore che indica se l'oggetto XamlMember rappresenta una proprietà di sola lettura prevista.

LookupIsReadPublic()

Restituisce un valore che indica se l'oggetto XamlMember rappresenta una proprietà che dispone di una funzione di accesso get pubblica.

LookupIsUnknown()

Restituisce un valore che indica se l'oggetto XamlMember rappresenta un membro che non può essere risolto dal sistema di supporto utilizzato per la risoluzione del tipo e del membro.

LookupIsWriteOnly()

Restituisce un valore che indica se l'oggetto XamlMember rappresenta un membro che dispone di una funzione di accesso set pubblica ma non di una funzione di accesso get pubblica.

LookupIsWritePublic()

Restituisce un valore che indica se l'oggetto XamlMember rappresenta un membro che dispone di una funzione di accesso set pubblica.

LookupMarkupExtensionBracketCharacters()

Restituisce i caratteri parentesi quadra di apertura e chiusura per un'estensione di markup.

LookupTargetType()

Restituisce l'oggetto XamlType del tipo in cui può essere presente l'oggetto XamlMember.

LookupType()

Restituisce l'oggetto XamlType del tipo utilizzato dal membro.

LookupTypeConverter()

Restituisce un'implementazione del convertitore di tipi associata all'oggetto XamlMember.

LookupUnderlyingGetter()

Restituisce una funzione di accesso get associata all'oggetto XamlMember.

LookupUnderlyingMember()

Restituisce un oggetto MemberInfo del sistema di tipo CRL che è associato all'oggetto XamlMember.

LookupUnderlyingSetter()

Restituisce una funzione di accesso set associata all'oggetto XamlMember.

LookupValueSerializer()

Restituisce un'implementazione del serializzatore di valori associata all'oggetto XamlMember.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione in forma di stringa di XamlMember.

Operatori

Equality(XamlMember, XamlMember)

Determina se due oggetti XamlMember specificati hanno lo stesso valore.

Inequality(XamlMember, XamlMember)

Determina se due oggetti XamlMember specificati hanno valori diversi.

Si applica a

Vedi anche