Type.GetMember メソッド (String, MemberTypes, BindingFlags)
指定したバインディング制約を使用して、指定したメンバ型の指定したメンバを検索します。
Overloads Public Overridable Function GetMember( _
ByVal name As String, _ ByVal type As MemberTypes, _ ByVal bindingAttr As BindingFlags _) As MemberInfo()
[C#]
public virtual MemberInfo[] GetMember(stringname,MemberTypestype,BindingFlagsbindingAttr);
[C++]
public: virtual MemberInfo* GetMember(String* name,MemberTypestype,BindingFlagsbindingAttr) [];
[JScript]
public function GetMember(
name : String,type : MemberTypes,bindingAttr : BindingFlags) : MemberInfo[];
パラメータ
name
取得するメンバの名前を格納している String 。type
検索対象の MemberType 。bindingAttr
検索の実行方法を指定する 1 つ以上の BindingFlags から成るビット マスク。または
null 参照 (Visual Basic では Nothing) を返す 0。
戻り値
指定した名前のパブリック メンバが存在する場合は、そのメンバを表す MemberInfo オブジェクトの配列。それ以外の場合は null 参照 (Visual Basic では Nothing) 。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | name が null 参照 (Visual Basic では Nothing) です。 |
NotSupportedException | 派生クラスで実装を提供する必要があります。 |
解説
メンバには、プロパティ、メソッド、フィールド、イベントなどがあります。
このメソッドは、現在のクラスとその基本クラスを検索します。要求された型がパブリックではなく、呼び出し元に現在のアセンブリ外の非パブリック オブジェクトをリフレクションするための ReflectionPermission がない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。
次の BindingFlags フィルタ フラグは、検索対象に含めるメンバを定義するために使用できます。
- 戻り値を取得するには、 BindingFlags.Instance または BindingFlags.Static のいずれかを指定する必要があります。
- 検索対象にパブリック メンバを含めるための BindingFlags.Public を指定します。
- 検索対象にパブリックではないメンバ (つまり、プライベート メンバやプロテクト メンバ) を含めるための BindingFlags.NonPublic を指定します。
- 階層構造の上位にある静的メンバを含めるための BindingFlags.FlattenHierarchy を指定します。
次の BindingFlags 修飾フラグは、検索方法を変更するために使用できます。
- name の大文字と小文字の違いを無視する場合は BindingFlags.IgnoreCase 。
- 単に継承されただけのメンバではなく、 Type で宣言されたメンバだけを検索する場合は BindingFlags.DeclaredOnly 。
詳細については、「 System.Reflection.BindingFlags 」を参照してください。
クラス初期化子は、 GetMember 、 GetMembers 、 FindMembers 、および GetConstructors を通じて使用できます。
使用例
[Visual Basic, C#, C++] myString クラスの、文字 C で始まるメソッドをすべて表示する例を次に示します。
Public Sub GetPublicInstanceMethodMemberInfo()
Dim myString As [String] = "GetMember_String_MemberType_BindingFlag"
Dim myType As Type = myString.GetType()
' Get the public instance methods for myString starting with the letter C.
Dim myMembers As MemberInfo() = myType.GetMember("C*", MemberTypes.Method, BindingFlags.Public Or BindingFlags.Instance)
If myMembers.Length > 0 Then
Console.WriteLine(ControlChars.Cr + "The public instance method(s) starting with the letter C for type {0}:", myType)
Dim index As Integer
For index = 0 To myMembers.Length - 1
Console.WriteLine("Member {0}: {1}", index + 1, myMembers(index).ToString())
Next index
Else
Console.WriteLine("No members match the search criteria.")
End If
End Sub 'GetPublicInstanceMethodMemberInfo
End Class 'MyMemberSample
[C#]
public void GetPublicInstanceMethodMemberInfo()
{
String myString = "GetMember_String_MemberType_BindingFlag";
Type myType = myString.GetType();
// Get the public instance methods for myString starting with the letter C.
MemberInfo[] myMembers = myType.GetMember("C*", MemberTypes.Method,
BindingFlags.Public | BindingFlags.Instance);
if(myMembers.Length > 0)
{
Console.WriteLine("\nThe public instance method(s) starting with the letter C for type {0}:", myType);
for(int index=0; index < myMembers.Length; index++)
Console.WriteLine("Member {0}: {1}", index + 1, myMembers[index].ToString());
}
else
Console.WriteLine("No members match the search criteria.");
}
}
[C++]
void GetPublicInstanceMethodMemberInfo() {
String* myString = S"GetMember_String_MemberType_BindingFlag";
Type* myType = myString->GetType();
// Get the public instance methods for myString starting with the letter C.
MemberInfo* myMembers[] = myType->GetMember(S"C*", MemberTypes::Method,
static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance));
if (myMembers->Length > 0) {
Console::WriteLine(S"\nThe public instance method(s) starting with the letter C for type {0}:", myType);
for (int index=0; index < myMembers->Length; index++)
Console::WriteLine(S"Member {0}: {1}",__box( index + 1), myMembers->Item[index]);
} else
Console::WriteLine(S"No members match the search criteria.");
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- ReflectionPermission (非パブリック オブジェクトをリフレクション操作するために必要なアクセス許可) ReflectionPermissionFlag.TypeInformation (関連する列挙体)
参照
Type クラス | Type メンバ | System 名前空間 | Type.GetMember オーバーロードの一覧 | MemberInfo | String | BindingFlags | DefaultBinder | ReflectionPermission | GetMembers | GetDefaultMembers | FindMembers