情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

BindingFlags 列挙体

2013/12/12

バインディング、およびリフレクションによるメンバーと型の検索方法を制御するフラグを指定します。

この列挙体には、メンバー値のビットごとの組み合わせを可能にする FlagsAttribute 属性が含まれています。

Namespace:  System.Reflection
アセンブリ:  mscorlib (mscorlib.dll 内)

[FlagsAttribute]
public enum BindingFlags

メンバー名説明
CreateInstanceリフレクションで、指定した型のインスタンスを作成します。このフラグは、指定された引数と一致するコンストラクターを呼び出します。指定したメンバー名は無視されます。検索の種類を省略した場合は、(Instance | Public) が適用されます。タイプ初期化子を呼び出すことはできません。
DeclaredOnly指定した型の階層のレベルで宣言されたメンバーだけを対象とします。継承されたメンバーは対象になりません。
Defaultバインディング フラグなし。
ExactBinding指定した引数の型が、対応する仮パラメーターの型と完全に一致する必要があります。呼び出し元が非 null Binder オブジェクトを指定した場合、これは適切なメソッドをピックする BindToXXX 実装を呼び出し元が提供することを意味するため、リフレクションは例外をスローします。既定のバインダーはこのフラグを無視しますが、カスタム バインダーはこのフラグのセマンティクスを実装できます。
FlattenHierarchy階層上位のパブリックおよびプロテクトの静的メンバーを返します。継承クラスのプライベートな静的メンバーは返されません。静的メンバーには、フィールド、メソッド、イベント、プロパティなどがあります。入れ子にされた型は返されません。
GetField指定されたフィールドの値が返されます。
GetProperty指定されたプロパティの値が返されます。
IgnoreCaseバインディング時、メンバー名の大文字と小文字は区別されません。
IgnoreReturnCOM 相互運用で使用して、メンバーの戻り値を無視できることを指定します。
Instance検索内にインスタンス メンバーを含める必要があります。
InvokeMethodメソッドを呼び出します。コンストラクターと型初期化子は指定できません。
NonPublic検索内に非パブリック メンバーを含める必要があります。
OptionalParamBindingパラメーターの数が、指定された引数の数と一致する一連のメンバーが返されます。このバインディング フラグは、既定値を持つパラメーターをとるメソッドと、可変個の引数 (varargs) をとるメソッドで使用します。このフラグは常に、Type.InvokeMember メソッドと共に使用しなければなりません。既定値を持つパラメーターを呼び出しで使用できるのは、それ以後の引数が省略されている場合だけです。そのパラメーターが最後の引数になります。
Public検索内にパブリック メンバーを含める必要があります。
PutDispPropertyCOM オブジェクトの PROPPUT メンバーを呼び出す必要があります。PROPPUT は、値を使用するプロパティ設定関数を指定します。プロパティに PROPPUTPROPPUTREF の両方があり、どちらを呼び出すかを区別する必要がある場合は、PutDispProperty を使用します。
PutRefDispPropertyCOM オブジェクトの PROPPUTREF メンバーを呼び出す必要があります。PROPPUTREF は、値ではなく参照を使用するプロパティ設定関数を指定します。プロパティに PROPPUTPROPPUTREF の両方があり、どちらを呼び出すかを区別する必要がある場合は、PutRefDispProperty を使用します。
SetField指定されたフィールドの値が設定されます。
SetProperty指定したプロパティの値が設定されます。COM プロパティの場合、このバインディング フラグを指定することは、PutDispPropertyPutRefDispProperty を指定することと同じです。
Static検索内に静的メンバーを含める必要があります。
SuppressChangeType実装されていません。

BindingFlags 列挙体によって指定されたフラグは、System および System.Reflection の名前空間のクラスによって実行されるさまざまな操作のバインディングを制御します。リフレクションの枠組みの中では、呼び出し、作成、取得、設定、メンバーや型の検索などがこれらの操作に該当します。たとえば、バインディング フラグは、TypeActivator、および MethodBase の次のメソッドのオーバーロードで使用されます。

InvokeMemberGetMethod は、特に重要です。

次の表に示すように、バインディング フラグは、型のメンバーをどのように識別するかで分類できます。

アクセシビリティで識別

バインディング引数で識別

操作で識別

DeclaredOnly

FlattenHierarchy

IgnoreCase

IgnoreReturn

Instance

NonPublic

Public

Static

ExactBinding

OptionalParamBinding

CreateInstance

GetField

SetField

GetProperty

SetProperty

InvokeMethod

PutDispProperty

PutRefDispProperty

メモメモ:

Instance または Static は、Public または NonPublic と一緒に指定する必要があります。そのようにしないと、メンバーが返されません。

既定の Binder.ChangeType メソッドで実行される型の強制変換の一覧を次の表に示します。この表は、特に ExactBinding バインディング フラグに適用されます。

変換元の型

変換後の型

任意の型

基本型

任意の型

実装するインターフェイス

Char

UInt16UInt32Int32UInt64Int64SingleDouble

Byte

CharUInt16Int16UInt32Int32UInt64Int64SingleDouble

SByte

Int16Int32Int64SingleDouble

UInt16

UInt32Int32UInt64Int64SingleDouble

Int16

Int32Int64SingleDouble

UInt32

UInt64Int64SingleDouble

Int32

Int64SingleDouble

UInt64

SingleDouble

Int64

SingleDouble

Single

Double (倍精度浮動小数点型)

非参照渡し

参照渡し

Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: