XamlMember クラス

定義

XAML 型のメンバーの XAML 型システム識別子を提供します。Provides the XAML type system identifier for members of XAML types. 識別子は、メンバー ノードの処理時 (XAML リーダーの位置が StartMember のとき) および一般的な XAML 型システムのロジックに、XAML リーダーおよび XAML ライターによって使用されます。The identifier is used by XAML readers and XAML writers during processing of member nodes (when the XAML reader is positioned on a StartMember) and also for general XAML type system logic.

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
派生
実装

注釈

XamlMember は、XAML メンバーに関する情報を返すために3つの方法論を使用できます。標準の共通言語ランタイム (CLR) リフレクションです。最適化されたビットフラグを使用する内部 Api を呼び出す参照専用のリフレクション技法。または、可能な XamlMember サブクラスによって提供される Lookup* API の仮想オーバーライドを呼び出します。XamlMember can use three methodologies for returning information about a XAML member: standard common language runtime (CLR) reflection; a reference-only reflection technique calling internal APIs that use optimized bit flags; or calling into virtual overrides of the Lookup* API that is provided by possible XamlMember subclasses. .NET Framework XAML サービス Api と XamlMember API のほとんどの用途では、既定の XAML スキーマコンテキストを使用します。For most uses of .NET Framework XAML Services APIs and the XamlMember API, you use the default XAML schema context. .NET Framework XAML サービスの既定の XAML スキーマコンテキストでは、型システムの CLR バッキングが使用されます。The default XAML schema context for .NET Framework XAML Services uses CLR backing for the type system. これにより、XAML リーダーと XAML ライターは、CLR とそのリフレクション手法で定義または使用可能な任意の型またはメンバーを操作できます。This enables the XAML readers and XAML writers to work with any type or member that is defined in, or otherwise available to, the CLR and its reflection techniques.

Lookup * Api と XamlMember の派生クラスLookup* APIs and XamlMember Derived Classes

XamlMember は、派生クラスがオーバーライドする可能性のあるいくつかの仮想メンバーを定義します。XamlMember defines several virtual members that derived classes might override. これらのメンバーには、常に文字列 Lookupで始まる名前が付いています。These members have names that always start with the string Lookup. API 名の残りの部分は、仮想メソッドが影響するプロパティを参照します。The remainder of the API name then references the property that the virtual method influences. たとえば、XamlMember 派生クラスは LookupTargetType をオーバーライドして、派生クラスで TargetType が返す基本定義プロパティの内容に影響を与える可能性があります。For example, a XamlMember derived class might override LookupTargetType to influence what the base-defined property TargetType returns in a derived class. 関連する Lookup* メソッドのドキュメントを読むことで、XamlMember または既存の派生クラスのプロパティの戻り値を予測できます。You can predict return values for such properties in XamlMember or existing derived classes by reading the documentation for the relevant Lookup* methods.

Lookup* メソッドの目的は、XamlMember 基底クラスを組み込む XAML 型システムの拡張手法を提供することです。The purpose of the Lookup* methods is to provide a XAML type system extension technique that incorporates the XamlMember base class. XamlMember から派生させ、Lookup 仮想メンバーをオーバーライドすることにより、バッキング型システムまたはテクノロジの詳細に関連付けられていない xaml 型システムで xaml スキーマの xaml メンバーの概念を定義できます。By deriving from XamlMember and overriding the Lookup virtual members, you can define the concept of a XAML member for a XAML schema in a XAML type system without being tied to the specifics of a backing type system or technology. このスキームでは、指定された XAML スキーマコンテキストを使用することもできます。それでも、必要な結果を返すことができます。You can also use a provided XAML schema context under this scheme and still return the results you want.

例として、XamlMember プロパティ IsWritePublicを考えてみます。As an example, consider the XamlMember property IsWritePublic. このプロパティは、シリアル化のために XamlWriter を使用するなどの操作で、ターゲットオブジェクトにこのメンバーの値を書き込むことができることを呼び出し元に通知します。This property informs callers that operations such as using a XamlWriter for serialization can write a value for this member on a target object. 既定の実装では、バッキング CLR Type とそのメンバー (MemberInfo) に対してリフレクション手法を使用して、メンバーが書き込み可能かどうかを判断します。In the default implementation, the determination of whether the member is writable is made by using reflection techniques against the backing CLR Type and its members (the MemberInfo). したがって、既定では、XAML 型システムは CLR 型システムに依存します。Therefore, by default, the XAML type system depends on the CLR type system. ただし、API LookupIsWritePublicをオーバーライドすることにより、IsWritePublic の XAML 型システムレポートのこの依存関係を削除できます。However, you can remove this dependency for your XAML type system reporting of IsWritePublic by overriding the API LookupIsWritePublic. オーバーライドでは、テクノロジに固有のメタデータ、固定の XAML 語彙用に最適化されたマスター参照テーブル、xaml ボキャブラリで XAML メンバーを書き込み可能にするかどうかを決定するためのさまざまな方法など、他の決定を使用できます。Within your override, you can use other determinations, such as metadata that is specific to your technology, a master lookup table that is optimized for a fixed XAML vocabulary, or a variety of other strategies for determining whether a XAML member is writable in your XAML vocabulary.

XAML スキーマコンテキストなしで XamlMember を構築していますConstructing XamlMember Without XAML Schema Context

XamlMember のほとんどのコンストラクターでは、初期化の一部として XamlSchemaContext が必要です。Most constructors of XamlMember require a XamlSchemaContext as part of their initialization. XamlSchemaContext は、バッキング型から転送される情報の取得など、多くの内部 XamlSchemaContext 操作にも必要です。The XamlSchemaContext is also necessary for many internal XamlSchemaContext operations, such as obtaining information that is being forwarded from the backing type. XamlMember API を使用する場合は、通常、XamlWriterなどの周囲の構成要素から使用できる XamlSchemaContext があります。When you are working with the XamlMember API, you typically have a XamlSchemaContext that is available from a surrounding construct such as a XamlWriter. この場合は、XAML スキーマコンテキストを必要とするすべての XAML 型システム呼び出しに XamlSchemaContext 参照を渡すことができます。In this case, you can pass the XamlSchemaContext reference through to all XAML type system calls that require a XAML schema context.

1つの特定のコンストラクター XamlMember(String, XamlType, Boolean)には、XamlSchemaContextは必要ありません。One specific constructor, XamlMember(String, XamlType, Boolean), does not require a XamlSchemaContext. ただし、XamlMember(String, XamlType, Boolean) シグネチャを使用して構築された XamlMemberIsUnknowntrue を返します。However, a XamlMember that is constructed with the XamlMember(String, XamlType, Boolean) signature returns true for IsUnknown.

XamlObjectWriterを含む読み込みパスの場合、このようなメンバーをオブジェクトグラフに書き込むことはできません。For a load path that involves XamlObjectWriter, such a member cannot be written into an object graph. .NET Framework XAML サービスの実装を使用すると、関連する XamlMembertrue を報告するときに、XamlObjectWriter.WriteStartMember 呼び出しによって XamlObjectWriterException がスローされます。IsUnknownUsing the .NET Framework XAML services implementation, the XamlObjectWriter.WriteStartMember call throws a XamlObjectWriterException when the relevant XamlMember reports true for IsUnknown.

実装で XamlObjectWriterからの例外を処理できる場合、または XamlObjectWriter 動作を調整する他の方法がある場合を除き、IsUnknown に対して true の値を持つ XamlMember を構築しないでください。You should not construct a XamlMember that has a value of true for IsUnknown unless your implementation can handle the exceptions from XamlObjectWriter, or you have other ways to adjust the XamlObjectWriter behavior. たとえば、実装によっては次の1つ以上が当てはまります。For example, one or more of the following might be true of your implementation:

  • XAML スキーマコンテキストは、後で使用できます。The XAML schema context is available later.

  • メンバー呼び出し元パターンを使用します。You use a member invoker pattern.

  • カスタム XAML ライターで XamlObjectWriter.WriteStartMember を意図的にオーバーライドします。You deliberately override XamlObjectWriter.WriteStartMember in a custom XAML writer.

コンストラクター

XamlMember(EventInfo, XamlSchemaContext)

CLR 型システムの XamlMember および EventInfo を使用して、XamlSchemaContext クラスの新しいインスタンスを初期化します。Initializes a new instance of the XamlMember class using CLR type system EventInfo and a XamlSchemaContext.

XamlMember(EventInfo, XamlSchemaContext, XamlMemberInvoker)

CLR 型システム XamlMember および EventInfo (XamlSchemaContext の情報を含みます) を使用して、XamlMemberInvoker クラスの新しいインスタンスを初期化します。Initializes a new instance of the XamlMember class using CLR type system EventInfo and a XamlSchemaContext, including XamlMemberInvoker information.

XamlMember(PropertyInfo, XamlSchemaContext)

CLR 型システムの XamlMember および PropertyInfo を使用して、XamlSchemaContext クラスの新しいインスタンスを初期化します。Initializes a new instance of the XamlMember class using CLR type system PropertyInfo and a XamlSchemaContext.

XamlMember(PropertyInfo, XamlSchemaContext, XamlMemberInvoker)

リフレクション XamlMember および PropertyInfo (XamlSchemaContext の情報を含みます) を使用して、XamlMemberInvoker クラスの新しいインスタンスを初期化します。Initializes a new instance of the XamlMember class using reflection PropertyInfo and a XamlSchemaContext, including XamlMemberInvoker information.

XamlMember(String, MethodInfo, MethodInfo, XamlSchemaContext)

アタッチ可能なプロパティを表す XamlMember に対する XamlMember クラスの新しいインスタンスを初期化します。Initializes a new instance of the XamlMember class for a XamlMember that represents an attachable property.

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

アタッチ可能なプロパティを表す XamlMember (XamlMember の情報を含みます) に対する XamlMemberInvoker クラスの新しいインスタンスを初期化します。Initializes a new instance of the XamlMember class for a XamlMember that represents an attachable property, including XamlMemberInvoker information.

XamlMember(String, MethodInfo, XamlSchemaContext)

アタッチ可能なイベントを表す XamlMember に対する XamlMember クラスの新しいインスタンスを初期化します。Initializes a new instance of the XamlMember class for a XamlMember that represents an attachable event.

XamlMember(String, MethodInfo, XamlSchemaContext, XamlMemberInvoker)

アタッチ可能なイベントを表す XamlMember (XamlMember の情報を含みます) に対する XamlMemberInvoker クラスの新しいインスタンスを初期化します。Initializes a new instance of the XamlMember class for a XamlMember that represents an attachable event, including XamlMemberInvoker information.

XamlMember(String, XamlType, Boolean)

文字列名と宣言 XamlMember 情報を使用して、XamlType クラスの新しいインスタンスを初期化します。Initializes a new instance of the XamlMember class using a string name and declaring XamlType information. このシグネチャで作成された XamlMember には重要な制限があります。A XamlMember that is constructed with this signature has significant limitations.

プロパティ

DeclaringType

この XamlType に関連付けられているメンバーを宣言する型の XamlMember を取得します。Gets the XamlType for the type that declares the member that is associated with this XamlMember.

DeferringLoader

XamlValueConverter<TConverterBase> オブジェクトを取得します。これは XAML で宣言されたオブジェクトの遅延読み込みに使用されます。Gets a XamlValueConverter<TConverterBase> object, which is used for deferred loading of XAML declared objects.

DependsOn

XamlMember オブジェクトの一覧を取得します。Gets a list of XamlMember objects. これらは、この XamlMember に関連して初期化順序の依存関係が存在するメンバーを報告します。These report the members where dependency relationships for initialization order exist relative to this XamlMember.

Invoker

この XamlMemberInvoker に関連付けられている XamlMember の実装を取得します。Gets the XamlMemberInvoker implementation that is associated with this XamlMember.

IsAmbient

この XamlMember をアンビエント プロパティとして報告するかどうかを示す値を取得します。Gets a value that indicates whether this XamlMember is reported as an ambient property.

IsAttachable

この XamlMember がアタッチ可能なメンバーかどうかを示す値を取得します。Gets a value that indicates whether this XamlMember is an attachable member.

IsDirective

この XamlMember が XAML ディレクティブかどうかを示す値を取得します。Gets a value that indicates whether this XamlMember is a XAML directive.

IsEvent

この XamlMember がイベント メンバーを表すかどうかを示す値を取得します。Gets a value that indicates whether this XamlMember represents an event member.

IsNameValid

この XamlMemberName として有効な xamlName 文字列を使用して初期化されているかどうかを示す値を取得します。Gets a value that indicates whether this XamlMember is initialized with a valid xamlName string as its Name.

IsReadOnly

この XamlMember が読み取り専用のメンバーを表すかどうかを示す値を取得します。Gets a value that indicates whether this XamlMember represents a read-only member.

IsReadPublic

この XamlMember が、呼び出し可能なパブリックの get アクセサーを持つメンバーを表すかどうかを示す値を取得します。Gets a value that indicates whether this XamlMember represents a member with a callable public get accessor.

IsUnknown

型およびメンバーの解決に使用されるバッキング システムによって解決できないメンバーであるかどうかを示す値を取得します。Gets a value that indicates whether the member is not resolvable by the backing system that is used for type and member resolution.

IsWriteOnly

この XamlMember が書き込み専用のメンバーを表すかどうかを示す値を取得します。Gets a value that indicates whether this XamlMember represents a write-only member.

IsWritePublic

この XamlMember が、呼び出し可能なパブリックの set アクセサーを持つメンバーを表すかどうかを示す値を取得します。Gets a value that indicates whether this XamlMember represents a member that has a callable public set accessor.

MarkupExtensionBracketCharacters

マークアップ拡張の左角かっこと右角かっこ文字を定義します。Defines the opening and closing bracket characters for a markup extension.

Name

この XamlMember を宣言する xamlName 名文字列を取得します。Gets the xamlName name string that declares this XamlMember.

PreferredXamlNamespace

XamlMember のプライマリ XAML 名前空間を識別する単一の XAML 名前空間の URI を取得します。Gets the single XAML namespace URI that identifies the primary XAML namespace for this XamlMember.

SerializationVisibility

ビジュアルなデザイナーでのメンバーの処理方法を示す DesignerSerializationVisibility 値を取得します。Gets a DesignerSerializationVisibility value, which indicates how a visual designer should process the member.

TargetType

XamlType が存在できる型の XamlMember を取得します。Gets the XamlType of the type where the XamlMember can exist.

Type

メンバーで使用される型の XamlType を取得します。Gets the XamlType of the type that is used by the member.

TypeConverter

XAML で宣言されたオブジェクトの型変換の構築に使用できる XamlValueConverter<TConverterBase> オブジェクトを取得します。Gets a XamlValueConverter<TConverterBase> object, which can be used for type conversion construction of XAML declared objects.

UnderlyingMember

MemberInfoPropertyInfo、または MethodInfo によって構築されるメンバーで使用できる CLR 型システム EventInfo を取得します。Gets the CLR type system MemberInfo that is available for a member that is constructed by PropertyInfo, MethodInfo, or EventInfo.

ValueSerializer

XamlValueConverter<TConverterBase> オブジェクトを取得します。これは XAML で宣言されたオブジェクトの値のシリアル化に使用されます。Gets a XamlValueConverter<TConverterBase> object, which is used for value serialization of XAML declared objects.

メソッド

Equals(Object)

現在のオブジェクトが、別のオブジェクトと等しいかどうかを示します。Indicates whether the current object is equal to another object.

Equals(XamlMember)

現在のオブジェクトが、同じ型の別のオブジェクトと等しいかどうかを示します。Indicates whether the current object is equal to another object of the same type.

GetHashCode()

このオブジェクトのハッシュ コードを返します。Returns the hash code for this object.

GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
GetXamlNamespaces()

この XAML メンバーが存在することのできる XAML 名前空間のリストを返します。Returns a list of XAML namespaces where this XAML member can exist.

LookupCustomAttributeProvider()

派生クラスで実装される場合、ICustomAttributeProvider 実装を返します。When implemented in a derived class, returns an ICustomAttributeProvider implementation.

LookupDeferringLoader()

XamlValueConverter<TConverterBase> オブジェクトを返します。これは XAML で宣言されたオブジェクトの遅延読み込みに使用されます。Returns a XamlValueConverter<TConverterBase> object, which is used for deferred loading of XAML declared objects.

LookupDependsOn()

XamlMember オブジェクトの一覧を返します。Returns a list of XamlMember objects. 一覧の項目では、この XamlMember に関連して初期化順序の依存関係が存在するメンバーが報告されます。Items in the list report the members where dependency relationships for initialization order exist relative to this XamlMember.

LookupInvoker()

この XamlMemberInvoker に関連付けられた XamlMember を返します。Returns a XamlMemberInvoker that is associated with this XamlMember.

LookupIsAmbient()

この XamlMember がアンビエント プロパティとして報告されているかどうかを返します。Returns whether this XamlMember is reported as an ambient property.

LookupIsEvent()

この XamlMember がイベントを表すかどうかを返します。Returns whether this XamlMember represents an event.

LookupIsReadOnly()

この XamlMember が目的の読み取り専用プロパティを表すかどうかを返します。Returns whether this XamlMember represents an intended read-only property.

LookupIsReadPublic()

この XamlMember がパブリックの get アクセサーを持つプロパティを表すかどうかを返します。Returns whether this XamlMember represents a property that has a public get accessor.

LookupIsUnknown()

この XamlMember が型およびメンバーの解決に使用されるバッキング システムによって解決できないメンバーを表すかどうかを返します。Returns whether this XamlMember represents a member that is not resolvable by the backing system that is used for type and member resolution.

LookupIsWriteOnly()

この XamlMember が、パブリックの set アクセサーを持ちパブリックの get アクセサーを持たないメンバーを表すかどうかを返します。Returns whether this XamlMember represents a member that has a public set accessor but not a public get accessor.

LookupIsWritePublic()

この XamlMember がパブリックの set アクセサーを持つメンバーを表すかどうかを返します。Returns whether this XamlMember represents a member that has a public set accessor.

LookupMarkupExtensionBracketCharacters()

マークアップ拡張の左角かっこと右角かっこ文字を返します。Returns the opening and closing bracket characters for a markup extension.

LookupTargetType()

XamlType が存在できる型の XamlMember を返します。Returns the XamlType of the type where the XamlMember can exist.

LookupType()

メンバーで使用される型の XamlType を返します。Returns the XamlType of the type that is used by the member.

LookupTypeConverter()

この XamlMember に関連付けられている型コンバーターの実装を返します。Returns a type converter implementation that is associated with this XamlMember.

LookupUnderlyingGetter()

この XamlMember に関連付けられている get アクセサーを返します。Returns a get accessor that is associated with this XamlMember.

LookupUnderlyingMember()

この MemberInfo に関連付けられている CLR 型システムの XamlMember を返します。Returns a CLR type system MemberInfo that is associated with this XamlMember.

LookupUnderlyingSetter()

この XamlMember に関連付けられている set アクセサーを返します。Returns a set accessor that is associated with this XamlMember.

LookupValueSerializer()

この XamlMember に関連付けられている値シリアライザーの実装を返します。Returns a value serializer implementation that is associated with this XamlMember.

MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

この XamlMember の文字列表現を返します。Returns a string representation of this XamlMember.

演算子

Equality(XamlMember, XamlMember)

指定した 2 つの XamlMember オブジェクトの値が同一かどうかを判断します。Determines whether two specified XamlMember objects have the same value.

Inequality(XamlMember, XamlMember)

指定した 2 つの XamlMember オブジェクトの値が異なるかどうかを判断します。Determines whether two specified XamlMember objects have different values.

適用対象

こちらもご覧ください