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

MemberInfo.GetCustomAttributes 메서드 (Boolean)

2013-12-13

파생 클래스에서 재정의되는 경우 이 멤버에 적용된 모든 사용자 지정 특성의 배열을 반환합니다.

Namespace:  System.Reflection
어셈블리:  mscorlib(mscorlib.dll)

public abstract Object[] GetCustomAttributes(
	bool inherit
)

매개 변수

inherit
형식: System.Boolean
특성을 찾기 위해 이 멤버의 상속 체인을 검색하려면 true이고, 그렇지 않으면 false입니다. 이 매개 변수는 속성과 이벤트의 경우 무시됩니다. 설명 부분을 참조하세요.

반환 값

형식: System.Object []
이 멤버에 적용된 모든 사용자 지정 특성을 포함하는 배열이며, 정의된 특성이 없는 경우 요소가 없는 배열입니다.

Implements

ICustomAttributeProvider.GetCustomAttributes(Boolean)

예외조건
TypeLoadException

사용자 지정 특성 형식을 로드할 수 없는 경우

이 메서드는 속성 및 이벤트에 대한 inherit 매개 변수를 무시합니다. 속성과 이벤트에서 특성에 대한 상속 체인을 검색하려면 Attribute.GetCustomAttributes 메서드의 해당 오버로드를 사용합니다.

버전 메모

Windows Phone

 일부 특성 생성자 인수 및 속성 값은 MemberInfo.GetCustomAttributes 오류를 일으킬 수 있습니다.

다음 예제에서는 사용자 지정 특성을 정의하고 특성을 MyClass.MyMethod에 연결한 다음 런타임에 특성을 검색하여 결과를 표시합니다.

참고참고:

이 예제를 실행하려면 Windows Phone용 정적 TextBlock 컨트롤이 있는 예제 빌드를 참조하세요.


using System;
using System.Reflection;

// Define a custom attribute with one named parameter.
[AttributeUsage(AttributeTargets.All)]
public class MyAttribute : Attribute
{
   private string myName;
   public MyAttribute(string name)
   {
      myName = name;
   }
   public string Name
   {
      get
      {
         return myName;
      }
   }
}

// Define a class that has the custom attribute associated with one of its members.
public class MyClass1
{
   [MyAttribute("This is an example attribute.")]
   public void MyMethod(int i)
   {
      return;
   }
}

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      try
      {
         // Get the type of MyClass1.
         Type myType = typeof(MyClass1);
         // Get the members associated with MyClass1.
         MemberInfo[] myMembers = myType.GetMembers();

         // Display the attributes for each of the members of MyClass1.
         for (int i = 0; i < myMembers.Length; i++)
         {
            Object[] myAttributes = myMembers[i].GetCustomAttributes(true);
            if (myAttributes.Length > 0)
            {
               outputBlock.Text += String.Format("\nThe attributes for the member {0} are: \n", myMembers[i]) + "\n";
               for (int j = 0; j < myAttributes.Length; j++)
                  outputBlock.Text += String.Format("The type of the attribute is {0}.", myAttributes[j]) + "\n";
            }
         }
      }
      catch (Exception e)
      {
         outputBlock.Text += String.Format("An exception occurred: {0}", e.Message) + "\n";
      }
   }
}


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시: