내보내기(0) 인쇄
모두 확장
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오.
번역
원본

Type.FindMembers 메서드

지정된 멤버 형식의 MemberInfo 개체에 대한 필터링된 배열을 반환합니다.

네임스페이스:  System
어셈블리:  mscorlib(mscorlib.dll)

public virtual MemberInfo[] FindMembers(
	MemberTypes memberType,
	BindingFlags bindingAttr,
	MemberFilter filter,
	Object filterCriteria
)

매개 변수

memberType
형식: System.Reflection.MemberTypes
검색할 멤버 형식을 나타내는 MemberTypes 개체입니다.
bindingAttr
형식: System.Reflection.BindingFlags
검색 방법을 지정하는 하나 이상의 BindingFlags로 구성된 비트 마스크입니다.
- 또는 -
0(null을 반환하는 경우)
filter
형식: System.Reflection.MemberFilter
비교를 수행하여 현재 검사 중인 멤버가 filterCriteria와 일치하면 true이고, 그렇지 않으면 false인 대리자입니다. 이 클래스에서 제공하는 FilterAttribute, FilterNameFilterNameIgnoreCase 대리자를 사용할 수 있습니다. 첫 번째 대리자는 FieldAttributes, MethodAttributesMethodImplAttributes의 필드를 검색 조건으로 사용하고 다른 두 대리자는 String 개체를 검색 조건으로 사용합니다.
filterCriteria
형식: System.Object
MemberInfo 개체의 배열에 멤버가 반환되는지 여부를 결정하는 검색 조건입니다.
FieldAttributes , MethodAttributesMethodImplAttributes의 필드는 이 클래스에서 제공하는 FilterAttribute 대리자와 함께 사용할 수 있습니다.

반환 값

형식: System.Reflection.MemberInfo[]
지정된 멤버 형식의 MemberInfo 개체에 대한 필터링된 배열입니다.
-또는-
현재 Type에 필터 조건과 일치하는 memberType 형식의 멤버가 없으면 MemberInfo 형식의 빈 배열입니다.

예외상황
ArgumentNullException

filternull인 경우

이 메서드는 파생 클래스에서 재정의할 수 있습니다.

다음과 같은 BindingFlags 필터 플래그를 사용하여 검색에 포함할 멤버를 정의할 수 있습니다.

  • 반환 값을 가져오려면 BindingFlags.Instance 또는 BindingFlags.Static을 지정해야 합니다.

  • 검색에 인스턴스 멤버를 포함하는 BindingFlags.Instance를 지정합니다.

  • 검색에 정적 멤버를 포함하는 BindingFlags.Static을 지정합니다.

  • 검색에 public 멤버를 포함하려면 BindingFlags.Public을 지정합니다.

  • 검색에 public이 아닌 멤버, 즉 private 멤버 및 protected 멤버를 포함하려면 BindingFlags.NonPublic을 지정합니다.

다음과 같은 BindingFlags 한정자 플래그를 사용하여 검색 작동 방법을 변경할 수 있습니다.

  • 단순히 상속된 멤버는 검색하지 않고 Type에 선언된 멤버만 검색하는 BindingFlags.DeclaredOnly

자세한 내용은 System.Reflection.BindingFlags을 참조하십시오.

MemberType 에 유효한 값은 MemberInfo에 정의되어 있습니다. 이러한 멤버가 없으면 빈 배열이 반환됩니다.

이 메서드를 사용하여 클래스 이니셜라이저(.cctor)를 가져오려면 BindingFlags.Static을 지정해야 합니다. | BindingFlags.NonPublic (Visual Basic의 BindingFlags.StaticOrBindingFlags.NonPublic).

현재 Type이 제네릭 형식 또는 제네릭 메서드의 형식 매개 변수를 나타내는 경우 FindMembers는 형식 매개 변수의 클래스 제약 조건과 인터페이스 제약 조건에서 선언된 모든 멤버를 처리합니다.

다음 예제에서는 지정된 검색 기준과 일치하는 모든 멤버를 클래스에서 찾고 일치된 멤버를 표시합니다.

참고참고:

이 예제를 실행하려면 Demo 메서드 및 TextBlock 컨트롤을 사용하는 예제 빌드를 참조하십시오.


using System;
using System.Reflection;

class Example
{
    public static void Demo(System.Windows.Controls.TextBlock outputBlock)
    {
        Object obj = "a string";

        // Get the type of the object, and find all the public static or 
        // instance methods that match the filter criteria.
        MemberInfo[] members =
            obj.GetType().FindMembers(MemberTypes.Method, 
                BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance,
                new MemberFilter(PartialName), 
                "ar");

        foreach (MemberInfo mi in members)
        {
            outputBlock.Text += "Found: " + mi.ToString() + "\n";
        }
    }

    public static bool PartialName(MemberInfo candidate, Object part)
    {
        // Test whether the name of the candidate member contains the 
        // specified partial name.
        if (candidate.Name.IndexOf(part.ToString()) > -1) 
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

/* This example produces the following output:

Found: Char get_Chars(Int32)
Found: Char[] ToCharArray()
Found: System.String TrimStart(Char[])
Found: Int32 Compare(System.String, System.String)
Found: Int32 Compare(System.String, System.String, System.StringComparison)
Found: Int32 Compare(System.String, System.String, System.Globalization.CultureInfo, System.Globalization.CompareOptions)
Found: Int32 Compare(System.String, Int32, System.String, Int32, Int32)
Found: Int32 Compare(System.String, Int32, System.String, Int32, Int32, System.Globalization.CultureInfo, System.Globalization.CompareOptions)
Found: Int32 Compare(System.String, Int32, System.String, Int32, Int32, System.StringComparison)
Found: Int32 CompareTo(System.Object)
Found: Int32 CompareTo(System.String)
Found: Int32 CompareOrdinal(System.String, System.String)
Found: Int32 CompareOrdinal(System.String, Int32, System.String, Int32, Int32)
Found: Boolean StartsWith(System.String)
Found: Boolean StartsWith(System.String, System.StringComparison)
 */


Silverlight

5, 4, 3에서 지원

Windows Phone용 Silverlight

Windows Phone OS 7.1, Windows Phone OS 7.0에서 지원

XNA Framework

Xbox 360, Windows Phone OS 7.0에서 지원

Silverlight에서 지원되는 운영 체제 및 브라우저에 대한 자세한 내용은 지원되는 운영 체제 및 브라우저을 참조하십시오.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft