Type.FindMembers メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Public Overridable Function FindMembers ( _ memberType As MemberTypes, _ bindingAttr As BindingFlags, _ filter As MemberFilter, _ filterCriteria As Object _ ) As MemberInfo()
Dim instance As Type Dim memberType As MemberTypes Dim bindingAttr As BindingFlags Dim filter As MemberFilter Dim filterCriteria As Object Dim returnValue As MemberInfo() returnValue = instance.FindMembers(memberType, bindingAttr, filter, filterCriteria)
public virtual MemberInfo[] FindMembers ( MemberTypes memberType, BindingFlags bindingAttr, MemberFilter filter, Object filterCriteria )
public: virtual array<MemberInfo^>^ FindMembers ( MemberTypes memberType, BindingFlags bindingAttr, MemberFilter^ filter, Object^ filterCriteria )
public MemberInfo[] FindMembers ( MemberTypes memberType, BindingFlags bindingAttr, MemberFilter filter, Object filterCriteria )
public function FindMembers ( memberType : MemberTypes, bindingAttr : BindingFlags, filter : MemberFilter, filterCriteria : Object ) : MemberInfo[]
- bindingAttr
検索の実行方法を指定する 1 つ以上の BindingFlags から成るビット マスク。
または
null 参照 (Visual Basic では Nothing) を返す 0。
- filter
比較を実行して、現在調べているメンバが filterCriteria に一致する場合は true を返し、それ以外の場合は false を返すデリゲート。このクラスで提供される FilterAttribute デリゲート、FilterName デリゲート、および FilterNameIgnoreCase デリゲートを使用できます。1 つ目のデリゲートは、検索条件として FieldAttributes、MethodAttributes、MethodImplAttributes の各フィールドを使用し、他の 2 つのデリゲートは、検索条件として String オブジェクトを使用します。
- filterCriteria
MemberInfo オブジェクトの配列でメンバが返されたかどうかを判断する検索条件。
FieldAttributes、MethodAttributes、MethodImplAttributes の各フィールドは、このクラスで提供される FilterAttribute デリゲートと組み合わせて使用できます。
指定したメンバ型の MemberInfo オブジェクトのフィルタ適用済みの配列。 または 現在の Type に、フィルタ条件に一致する memberType 型のメンバが存在しない場合は、MemberInfo 型の空の配列。


メンバには、プロパティ、メソッド、フィールド、イベントなどがあります。要求された型がパブリックではなく、呼び出し元に現在のアセンブリ外の非パブリック オブジェクトをリフレクションするための ReflectionPermission がない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。
次の BindingFlags フィルタ フラグは、検索対象に含めるメンバを定義するために使用できます。
次の BindingFlags 修飾フラグは、検索方法を変更するために使用できます。
詳細については、「System.Reflection.BindingFlags」を参照してください。
MemberType の有効な値は、MemberInfo で定義されます。それらのメンバが見つからない場合は、空の配列が返されます。
このメソッドを使用してクラス初期化子 (.cctor) を取得するには、BindingFlags.Static | BindingFlags.NonPublic (Visual Basic の場合は BindingFlags.StaticOrBindingFlags.NonPublic) を指定する必要があります。TypeInitializer プロパティを使用して、クラス初期化子を取得することもできます。
現在の Type がジェネリック型またはジェネリック メソッドの型パラメータを表している場合、FindMembers はクラス制約、および型パラメータのインターフェイス制約によって宣言されたメンバを処理します。

指定した検索条件に一致するクラスのメンバをすべて検索し、一致したメンバを表示する例を次に示します。
Imports System Imports System.Reflection Imports Microsoft.VisualBasic Class MyFindMembersClass Public Shared Sub Main() Dim objTest As New Object() Dim objType As Type = objTest.GetType() Dim arrayMemberInfo() As MemberInfo Try 'Find all static or public methods in the Object 'class that match the specified name. arrayMemberInfo = objType.FindMembers(MemberTypes.Method, _ BindingFlags.Public Or BindingFlags.Static _ Or BindingFlags.Instance, _ New MemberFilter(AddressOf DelegateToSearchCriteria), _ "ReferenceEquals") Dim index As Integer For index = 0 To arrayMemberInfo.Length - 1 Console.WriteLine("Result of FindMembers -" + ControlChars.Tab + _ arrayMemberInfo(index).ToString() + ControlChars.Cr) Next index Catch e As Exception Console.WriteLine("Exception : " + e.ToString()) End Try End Sub 'Main Public Shared Function DelegateToSearchCriteria _ (ByVal objMemberInfo As MemberInfo, _ ByVal objSearch As Object) As Boolean ' Compare the name of the member function with the filter criteria. If objMemberInfo.Name.ToString() = objSearch.ToString() Then Return True Else Return False End If End Function 'DelegateToSearchCriteria End Class 'MyFindMembersClass
using System; using System.Reflection; class MyFindMembersClass { public static void Main() { Object objTest = new Object(); Type objType = objTest.GetType (); MemberInfo[] arrayMemberInfo; try { //Find all static or public methods in the Object class that match the specified name. arrayMemberInfo = objType.FindMembers(MemberTypes.Method, BindingFlags.Public | BindingFlags.Static| BindingFlags.Instance , new MemberFilter(DelegateToSearchCriteria), "ReferenceEquals"); for(int index=0;index < arrayMemberInfo.Length ;index++) Console.WriteLine ("Result of FindMembers -\t"+ arrayMemberInfo[index].ToString() +"\n"); } catch (Exception e) { Console.WriteLine ("Exception : " + e.ToString() ); } } public static bool DelegateToSearchCriteria(MemberInfo objMemberInfo, Object objSearch) { // Compare the name of the member function with the filter criteria. if(objMemberInfo.Name.ToString() == objSearch.ToString()) return true; else return false; } }
using namespace System; using namespace System::Reflection; ref class MyFindMembersClass { public: static void Test() { Object^ objTest = gcnew Object; Type^ objType = objTest->GetType(); array<MemberInfo^>^arrayMemberInfo; try { //Find all static or public methods in the Object class that match the specified name. arrayMemberInfo = objType->FindMembers( MemberTypes::Method, static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Static | BindingFlags::Instance), gcnew MemberFilter( DelegateToSearchCriteria ), "ReferenceEquals" ); for ( int index = 0; index < arrayMemberInfo->Length; index++ ) Console::WriteLine( "Result of FindMembers -\t {0}", String::Concat( arrayMemberInfo[ index ], "\n" ) ); } catch ( Exception^ e ) { Console::WriteLine( "Exception : {0}", e ); } } static bool DelegateToSearchCriteria( MemberInfo^ objMemberInfo, Object^ objSearch ) { // Compare the name of the member function with the filter criteria. if ( objMemberInfo->Name->Equals( objSearch->ToString() ) ) return true; else return false; } }; int main() { MyFindMembersClass::Test(); }
import System.*; import System.Reflection.*; class MyFindMembersClass { public static void main(String[] args) { Object objTest = new Object(); Type objType = objTest.GetType(); MemberInfo arrayMemberInfo[]; try { // Find all static or public methods in the Object class that match // the specified name. arrayMemberInfo = objType.FindMembers(MemberTypes.Method, BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance, new MemberFilter(DelegateToSearchCriteria), "ReferenceEquals"); for (int index = 0; index < arrayMemberInfo.length; index++) { Console.WriteLine("Result of FindMembers -\t" + arrayMemberInfo.get_Item(index).ToString() + "\n"); } } catch (System.Exception e) { Console.WriteLine("Exception : " + e.ToString()); } } //main public static boolean DelegateToSearchCriteria(MemberInfo objMemberInfo, Object objSearch) { // Compare the name of the member function with the filter criteria. if (objMemberInfo.get_Name().ToString().Equals(objSearch.ToString())) { return true; } else { return false; } } //DelegateToSearchCriteria } //MyFindMembersClass


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


_Type.FindMembers メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Function FindMembers ( _ memberType As MemberTypes, _ bindingAttr As BindingFlags, _ filter As MemberFilter, _ filterCriteria As Object _ ) As MemberInfo()
Dim instance As _Type Dim memberType As MemberTypes Dim bindingAttr As BindingFlags Dim filter As MemberFilter Dim filterCriteria As Object Dim returnValue As MemberInfo() returnValue = instance.FindMembers(memberType, bindingAttr, filter, filterCriteria)
MemberInfo[] FindMembers ( MemberTypes memberType, BindingFlags bindingAttr, MemberFilter filter, Object filterCriteria )
array<MemberInfo^>^ FindMembers ( MemberTypes memberType, BindingFlags bindingAttr, MemberFilter^ filter, Object^ filterCriteria )
MemberInfo[] FindMembers ( MemberTypes memberType, BindingFlags bindingAttr, MemberFilter filter, Object filterCriteria )
function FindMembers ( memberType : MemberTypes, bindingAttr : BindingFlags, filter : MemberFilter, filterCriteria : Object ) : MemberInfo[]
- bindingAttr
検索の実行方法を指定する 1 つ以上の BindingFlags から成るビット マスク。
または
null 参照 (Visual Basic では Nothing) を返す 0。
- filter
比較を実行して、現在調べているメンバが filterCriteria に一致する場合は true を返し、それ以外の場合は false を返すデリゲート。このクラスで提供される FilterAttribute デリゲート、FilterName デリゲート、および FilterNameIgnoreCase デリゲートを使用できます。1 つ目のデリゲートは、検索条件として FieldAttributes、MethodAttributes、MethodImplAttributes の各フィールドを使用し、他の 2 つのデリゲートは、検索条件として String オブジェクトを使用します。
- filterCriteria
MemberInfo オブジェクトの配列でメンバが返されたかどうかを判断する検索条件。
FieldAttributes、MethodAttributes、MethodImplAttributes の各フィールドは、このクラスで提供される FilterAttribute デリゲートと組み合わせて使用できます。
指定したメンバ型の MemberInfo オブジェクトのフィルタ適用済みの配列。 または 現在の Type に、フィルタ条件に一致する memberType 型のメンバが存在しない場合は、MemberInfo 型の空の配列。

このメソッドは、アンマネージ コードからマネージ クラスにアクセスするためのメソッドであるため、マネージ コードからは呼び出さないでください。
Type.FindMembers メソッドは、指定したメンバ型の MemberInfo オブジェクトの配列にフィルタを適用して返します。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- Type.FindMembersのページへのリンク