정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.
이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

Type.GetMembers 메서드 (BindingFlags)

파생 클래스에서 재정의된 경우 현재 Type에 대해 정의된 멤버를 지정된 바인딩 제약 조건으로 검색합니다.

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

public abstract MemberInfo[] GetMembers (
	BindingFlags bindingAttr
)
public abstract MemberInfo[] GetMembers (
	BindingFlags bindingAttr
)
public abstract function GetMembers (
	bindingAttr : BindingFlags
) : MemberInfo[]
적용할 수 없음.

매개 변수

bindingAttr

검색 방법을 지정하는 하나 이상의 BindingFlags로 구성된 비트 마스크입니다.

- 또는 -

0(null 참조(Visual Basic의 경우 Nothing)를 반환하는 경우)

반환 값

현재 Type에 대해 정의된 멤버 중 지정된 바인딩 제약 조건과 일치하는 모든 멤버를 나타내는 MemberInfo 개체의 배열입니다. - 또는 - 현재 Type에 대해 정의된 멤버가 없거나 정의된 멤버 중 해당 바인딩 제약 조건과 일치하는 멤버가 없을 경우 MemberInfo 형식의 빈 배열입니다.

멤버에는 속성, 메서드, 필드, 이벤트 등이 포함됩니다.

GetMembers 메서드는 사전순 또는 선언순 등의 특정 순서로 멤버를 반환하지 않습니다. 멤버가 반환되는 순서는 달라질 수 있으므로 코드가 이 순서의 영향을 받지 않아야 합니다.

요청된 멤버가 public 형식이 아니고 public 형식이 아닌 개체를 현재 어셈블리의 외부에 리플렉션할 수 있는 ReflectionPermission이 호출자에게 없는 경우 이 메서드는 null 참조(Visual Basic의 경우 Nothing)을 반환합니다.

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

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

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

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

  • BindingFlags.FlattenHierarchy를 지정하여 publicprotected 정적 멤버를 이 계층 구조에 포함시킵니다. 상속된 클래스의 private 정적 멤버는 포함되지 않습니다.

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

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

이 메서드를 호출할 때 Public 플래그나 NonPublic 플래그만 사용해도 지정된 멤버가 반환되므로 다른 플래그는 사용할 필요가 없습니다.

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

이 메서드 오버로드를 사용하여 클래스 이니셜라이저(.cctor)를 가져오려면 BindingFlags.Static | BindingFlags.NonPublic(Visual Basic의 경우 BindingFlags.StaticOrBindingFlags.NonPublic)을 지정해야 합니다. 또한 TypeInitializer 속성을 사용하여 클래스 이니셜라이저를 가져올 수도 있습니다.

현재 T:System.Type이 생성된 제네릭 형식을 나타내는 경우 이 메서드는 MemberInfo 개체를 반환합니다. 여기에는 적절한 형식 인수로 대체된 형식 매개 변수가 포함됩니다.

현재 Type이 제네릭 형식 또는 제네릭 메서드 정의의 형식 매개 변수를 나타내는 경우 이 메서드는 클래스 제약 조건의 멤버를 검색하거나 클래스 제약 조건이 없으면 Object의 멤버를 검색합니다.


class MyClass
{
   public int myInt = 0;
   public string myString = null;

   public MyClass()
   {
   }
   public void Myfunction()
   {
   }
}

class Type_GetMembers_BindingFlags
{
   public static void Main()
   {
      try
      {
         MyClass MyObject = new MyClass();
         MemberInfo [] myMemberInfo; 

         // Get the type of the class 'MyClass'.
         Type myType = MyObject.GetType(); 
        
         // Get the public instance members of the class 'MyClass'. 
         myMemberInfo = myType.GetMembers(BindingFlags.Public|BindingFlags.Instance);
    
         Console.WriteLine( "\nThe public instance members of class '{0}' are : \n", myType); 
         for (int i =0 ; i < myMemberInfo.Length ; i++)
         {
            // Display name and type of the member of 'MyClass'.
            Console.WriteLine( "'{0}' is a {1}", myMemberInfo[i].Name, myMemberInfo[i].MemberType);
         }

      }
      catch (SecurityException e)
      {
         Console.WriteLine("SecurityException : " + e.Message ); 
      }      
   }
}


class MyClass
{
    public int myInt = 0;
    public String myString = null;

    public MyClass()
    {
    } //MyClass

    public void Myfunction()
    {
    } //Myfunction
} //MyClass

class Type_GetMembers_BindingFlags
{
    public static void main(String[] args)
    {
        try {
            MyClass MyObject = new MyClass();
            MemberInfo myMemberInfo[];
            // Get the type of the class 'MyClass'.
            Type myType = MyObject.GetType();
            // Get the public instance members of the class 'MyClass'. 
            myMemberInfo = myType.GetMembers(BindingFlags.Public
                | BindingFlags.Instance);

            Console.WriteLine("\nThe public instance members of class"
                + " '{0}' are : \n", myType);
            for (int i = 0; i < myMemberInfo.length; i++) {
                // Display name and type of the member of 'MyClass'.
                Console.WriteLine("'{0}' is a {1}", myMemberInfo[i].get_Name(),
                    myMemberInfo[i].get_MemberType());
            }
        }
        catch (SecurityException e) {
            Console.WriteLine("SecurityException : " + e.get_Message());
        }
    } //main
} //Type_GetMembers_BindingFlags

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0은 Windows Vista, Microsoft Windows XP SP2 및 Windows Server 2003 SP1에서 지원됩니다.

.NET Framework

3.0, 2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

XNA Framework

1.0에서 지원
이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.

커뮤니티 추가 항목

표시:
© 2014 Microsoft. All rights reserved.