XamlMember クラス

定義

XAML 型のメンバーの XAML 型システム識別子を提供します。 識別子は、メンバー ノードの処理時 (XAML リーダーの位置が StartMember のとき) および一般的な XAML 型システムのロジックに、XAML リーダーおよび XAML ライターによって使用されます。

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)
継承
XamlMember
派生
実装

注釈

XamlMemberXAML メンバーに関する情報を返すには、標準共通言語ランタイム (CLR) リフレクションという 3 つの方法を使用できます。最適化されたビット フラグを使用する内部 API を呼び出す参照専用リフレクション手法。可能なXamlMemberサブクラスによって提供される API のLookup*仮想オーバーライドを呼び出す。 .NET FRAMEWORK XAML サービス API と XamlMember API のほとんどの用途では、既定の XAML スキーマ コンテキストを使用します。 .NET Framework XAML サービスの既定の XAML スキーマ コンテキストでは、型システムに CLR バッキングが使用されます。 これにより、XAML リーダーと XAML ライターは、CLR とそのリフレクション手法で定義されている、またはその他の方法で使用できる任意の型またはメンバーを操作できます。

Lookup* API と XamlMember 派生クラス

XamlMember は、派生クラスがオーバーライドする可能性がある複数の仮想メンバーを定義します。 これらのメンバーには、常に文字列 Lookupで始まる名前があります。 その後、API 名の残りの部分は、仮想メソッドが影響を与えるプロパティを参照します。 たとえば、派生クラスを XamlMember オーバーライド LookupTargetType して、派生クラスで基本定義プロパティが返す内容 TargetType に影響を与える場合があります。 関連Lookup*するメソッドのドキュメントを参照して、派生クラスまたは既存の派生クラスでXamlMemberこのようなプロパティの戻り値を予測できます。

メソッドの Lookup* 目的は、基底クラスを組み込んだ XAML 型のシステム拡張手法を XamlMember 提供することです。 仮想メンバーから XamlMember 派生してオーバーライド Lookup することで、バッキング型システムまたはテクノロジの詳細に関連付けることなく、XAML 型システムの XAML スキーマの XAML メンバーの概念を定義できます。 また、このスキームで指定された XAML スキーマ コンテキストを使用して、必要な結果を返すこともできます。

たとえば、 プロパティIsWritePublicXamlMember考えてみましょう。 このプロパティは、シリアル化に を使用 XamlWriter するなどの操作で、ターゲット オブジェクトにこのメンバーの値を書き込むことができることを呼び出し元に通知します。 既定の実装では、バッキング CLR Type とそのメンバー ( MemberInfo) に対するリフレクション手法を使用して、メンバーが書き込み可能かどうかを判断します。 したがって、既定では、XAML 型システムは CLR 型システムに依存します。 ただし、 API LookupIsWritePublicをオーバーライドすることで、 の XAML 型システム レポートにIsWritePublic対するこの依存関係を削除できます。 オーバーライド内では、テクノロジに固有のメタデータ、固定 XAML ボキャブラリ用に最適化されたプライマリ参照テーブル、XAML メンバーが XAML ボキャブラリに書き込み可能かどうかを判断するためのその他のさまざまな戦略など、他の決定を使用できます。

XAML スキーマ コンテキストを使用しない XamlMember の構築

XamlMember ほとんどのコンストラクターでは、初期化の一部として が XamlSchemaContext 必要です。 XamlSchemaContextは、バッキング型から転送される情報の取得など、多くの内部XamlSchemaContext操作にも必要です。 API を XamlMember 使用している場合は、通常、 などの周囲の XamlSchemaContext コンストラクトから使用できる があります XamlWriter。 この場合、XAML スキーマ コンテキストを XamlSchemaContext 必要とするすべての XAML 型システム呼び出しに参照を渡すことができます。

1 つの特定のコンストラクター XamlMember(String, XamlType, Boolean)である は、 を XamlSchemaContext必要としません。 ただし、シグネチャをXamlMember使用して構築された はXamlMember(String, XamlType, Boolean)、 に対IsUnknownして を返しますtrue

を含む読み込みパスの XamlObjectWriter場合、このようなメンバーをオブジェクト グラフに書き込むことはできません。 .NET Framework XAML サービスの実装をXamlObjectWriter.WriteStartMember使用して、関連XamlMemberする が のレポートtrueIsUnknownを受け取ると、 が呼び出され、 がスローXamlObjectWriterExceptionされます。

の例外XamlObjectWriterを実装で処理できる場合、または動作を調整する他の方法がない限り、 のIsUnknowntrue値を持つ をXamlObjectWriter構築XamlMemberしないでください。 たとえば、次の 1 つ以上が実装に当てはまる場合があります。

  • XAML スキーマ コンテキストは、後で使用できます。
  • メンバー呼び出しパターンを使用します。
  • カスタム XAML ライターで意図的にオーバーライド XamlObjectWriter.WriteStartMember します。

コンストラクター

XamlMember(EventInfo, XamlSchemaContext)

CLR 型システムの XamlMember および EventInfo を使用して、XamlSchemaContext クラスの新しいインスタンスを初期化します。

XamlMember(EventInfo, XamlSchemaContext, XamlMemberInvoker)

CLR 型システム XamlMember および EventInfo (XamlSchemaContext の情報を含みます) を使用して、XamlMemberInvoker クラスの新しいインスタンスを初期化します。

XamlMember(PropertyInfo, XamlSchemaContext)

CLR 型システムの XamlMember および PropertyInfo を使用して、XamlSchemaContext クラスの新しいインスタンスを初期化します。

XamlMember(PropertyInfo, XamlSchemaContext, XamlMemberInvoker)

リフレクション XamlMember および PropertyInfo (XamlSchemaContext の情報を含みます) を使用して、XamlMemberInvoker クラスの新しいインスタンスを初期化します。

XamlMember(String, MethodInfo, MethodInfo, XamlSchemaContext)

アタッチ可能なプロパティを表す XamlMember に対する XamlMember クラスの新しいインスタンスを初期化します。

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

アタッチ可能なプロパティを表す XamlMember (XamlMember の情報を含みます) に対する XamlMemberInvoker クラスの新しいインスタンスを初期化します。

XamlMember(String, MethodInfo, XamlSchemaContext)

アタッチ可能なイベントを表す XamlMember に対する XamlMember クラスの新しいインスタンスを初期化します。

XamlMember(String, MethodInfo, XamlSchemaContext, XamlMemberInvoker)

アタッチ可能なイベントを表す XamlMember (XamlMember の情報を含みます) に対する XamlMemberInvoker クラスの新しいインスタンスを初期化します。

XamlMember(String, XamlType, Boolean)

文字列名と宣言 XamlMember 情報を使用して、XamlType クラスの新しいインスタンスを初期化します。 このシグネチャで作成された XamlMember には重要な制限があります。

プロパティ

DeclaringType

この XamlType に関連付けられているメンバーを宣言する型の XamlMember を取得します。

DeferringLoader

XamlValueConverter<TConverterBase> オブジェクトを取得します。これは XAML で宣言されたオブジェクトの遅延読み込みに使用されます。

DependsOn

XamlMember オブジェクトの一覧を取得します。 これらは、この XamlMember に関連して初期化順序の依存関係が存在するメンバーを報告します。

Invoker

この XamlMemberInvoker に関連付けられている XamlMember の実装を取得します。

IsAmbient

この XamlMember をアンビエント プロパティとして報告するかどうかを示す値を取得します。

IsAttachable

この XamlMember がアタッチ可能なメンバーかどうかを示す値を取得します。

IsDirective

この XamlMember が XAML ディレクティブかどうかを示す値を取得します。

IsEvent

この XamlMember がイベント メンバーを表すかどうかを示す値を取得します。

IsNameValid

この XamlMemberName として有効な xamlName 文字列を使用して初期化されているかどうかを示す値を取得します。

IsReadOnly

この XamlMember が読み取り専用のメンバーを表すかどうかを示す値を取得します。

IsReadPublic

この XamlMember が、呼び出し可能なパブリックの get アクセサーを持つメンバーを表すかどうかを示す値を取得します。

IsUnknown

型およびメンバーの解決に使用されるバッキング システムによって解決できないメンバーであるかどうかを示す値を取得します。

IsWriteOnly

この XamlMember が書き込み専用のメンバーを表すかどうかを示す値を取得します。

IsWritePublic

この XamlMember が、呼び出し可能なパブリックの set アクセサーを持つメンバーを表すかどうかを示す値を取得します。

MarkupExtensionBracketCharacters

マークアップ拡張の左角かっこと右角かっこ文字を定義します。

Name

この XamlMember を宣言する xamlName 名文字列を取得します。

PreferredXamlNamespace

XamlMember のプライマリ XAML 名前空間を識別する単一の XAML 名前空間の URI を取得します。

SerializationVisibility

ビジュアルなデザイナーでのメンバーの処理方法を示す DesignerSerializationVisibility 値を取得します。

TargetType

XamlType が存在できる型の XamlMember を取得します。

Type

メンバーで使用される型の XamlType を取得します。

TypeConverter

XAML で宣言されたオブジェクトの型変換の構築に使用できる XamlValueConverter<TConverterBase> オブジェクトを取得します。

UnderlyingMember

MemberInfoPropertyInfo、または MethodInfo によって構築されるメンバーで使用できる CLR 型システム EventInfo を取得します。

ValueSerializer

XamlValueConverter<TConverterBase> オブジェクトを取得します。これは XAML で宣言されたオブジェクトの値のシリアル化に使用されます。

メソッド

Equals(Object)

現在のオブジェクトが、別のオブジェクトと等しいかどうかを示します。

Equals(XamlMember)

現在のオブジェクトが、同じ型の別のオブジェクトと等しいかどうかを示します。

GetHashCode()

このオブジェクトのハッシュ コードを返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
GetXamlNamespaces()

この XAML メンバーが存在することのできる XAML 名前空間のリストを返します。

LookupCustomAttributeProvider()

派生クラスで実装される場合、ICustomAttributeProvider 実装を返します。

LookupDeferringLoader()

XamlValueConverter<TConverterBase> オブジェクトを返します。これは XAML で宣言されたオブジェクトの遅延読み込みに使用されます。

LookupDependsOn()

XamlMember オブジェクトの一覧を返します。 一覧の項目では、この XamlMember に関連して初期化順序の依存関係が存在するメンバーが報告されます。

LookupInvoker()

この XamlMemberInvoker に関連付けられた XamlMember を返します。

LookupIsAmbient()

この XamlMember がアンビエント プロパティとして報告されているかどうかを返します。

LookupIsEvent()

この XamlMember がイベントを表すかどうかを返します。

LookupIsReadOnly()

この XamlMember が目的の読み取り専用プロパティを表すかどうかを返します。

LookupIsReadPublic()

この XamlMember がパブリックの get アクセサーを持つプロパティを表すかどうかを返します。

LookupIsUnknown()

この XamlMember が型およびメンバーの解決に使用されるバッキング システムによって解決できないメンバーを表すかどうかを返します。

LookupIsWriteOnly()

この XamlMember が、パブリックの set アクセサーを持ちパブリックの get アクセサーを持たないメンバーを表すかどうかを返します。

LookupIsWritePublic()

この XamlMember がパブリックの set アクセサーを持つメンバーを表すかどうかを返します。

LookupMarkupExtensionBracketCharacters()

マークアップ拡張の左角かっこと右角かっこ文字を返します。

LookupTargetType()

XamlType が存在できる型の XamlMember を返します。

LookupType()

メンバーで使用される型の XamlType を返します。

LookupTypeConverter()

この XamlMember に関連付けられている型コンバーターの実装を返します。

LookupUnderlyingGetter()

この XamlMember に関連付けられている get アクセサーを返します。

LookupUnderlyingMember()

この MemberInfo に関連付けられている CLR 型システムの XamlMember を返します。

LookupUnderlyingSetter()

この XamlMember に関連付けられている set アクセサーを返します。

LookupValueSerializer()

この XamlMember に関連付けられている値シリアライザーの実装を返します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

この XamlMember の文字列表現を返します。

演算子

Equality(XamlMember, XamlMember)

指定した 2 つの XamlMember オブジェクトの値が同一かどうかを判断します。

Inequality(XamlMember, XamlMember)

指定した 2 つの XamlMember オブジェクトの値が異なるかどうかを判断します。

適用対象

こちらもご覧ください