더북(TheBook)

46.11 특정 속성에 적용된 특성 읽어 오기

이번에는 리플렉션을 사용하여 특정 속성에 적용된 특성을 읽어 오는 방법을 알아보겠습니다. 다음 내용을 입력한 후 실행해 보세요.

특정 속성에 적용된 특성 읽어 오기: ReflectionGetProperty.cs

using System;
using System.Reflection;

namespace ReflectionGetProperty
{
    class Person
    {
        [Obsolete] public string Name { get; set; }
    }

    class ReflectionGetProperty
    {
        static void Main()
        {
            //Name 속성의 정보 얻기
            PropertyInfo pi = typeof(Person).GetProperty("Name");

            //Name 속성에 적용된 특성 읽어 오기
            object[] attributes = pi.GetCustomAttributes(false);
            foreach (var attr in attributes)
            {
                //특성의 이름들 출력
                Console.WriteLine("{0}", attr.GetType().Name);
            }
        }
    }
}

실행 결과

ObsoleteAttribute

Type 개체의 GetProperty() 메서드로 특정 속성 정보를 얻고, 다시 GetCustomAttributes() 메서드로 특성 정보를 얻어 올 수 있습니다. 평상시 우리가 사용하던 코드보다는 좀 더 복잡하기에 닷넷 API 탐색기 등으로 각 메서드를 추가로 학습하길 권장합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.