이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

MemberInfo.GetCustomAttributes 메서드 (Boolean)

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

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

public abstract Object[] GetCustomAttributes(
	bool inherit
)

매개 변수

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

반환 값

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

구현

ICustomAttributeProvider.GetCustomAttributes(Boolean)
_MemberInfo.GetCustomAttributes(Boolean)

예외조건
InvalidOperationException

이 멤버가 리플렉션 전용 컨텍스트에 로드된 형식에 속하는 경우. 방법: 리플렉션 전용 컨텍스트에 어셈블리 로드 을 참조하십시오.

TypeLoadException

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

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

참고참고

.NET Framework 버전 2.0에서 이 메서드는 메서드, 생성자 및 형식에 대한 보안 특성이 새 메타데이터 형식으로 저장된 경우 이러한 특성을 반환합니다. 버전 2.0으로 컴파일된 어셈블리는 이 형식을 사용합니다. 이전 버전의 .NET Framework로 컴파일된 어셈블리 및 동적 어셈블리는 이전 XML 형식을 사용합니다. 선언적 보안 특성 내보내기 을 참조하십시오.

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


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 MemberInfo_GetCustomAttributes
{
    public static void Main()
    {
        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)
                {
                    Console.WriteLine("\nThe attributes for the member {0} are: \n", myMembers[i]);
                    for(int j = 0; j < myAttributes.Length; j++)
                        Console.WriteLine("The type of the attribute is {0}.", myAttributes[j]);
                }
            }
        }
        catch(Exception e)
        {
            Console.WriteLine("An exception occurred: {0}", e.Message);
        }
    }
}


.NET Framework

4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

이식 가능한 클래스 라이브러리

이식 가능한 클래스 라이브러리에서 지원

Windows Phone 앱용 .NET

Windows Phone 8, Silverlight 8.1에서 지원

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft