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 탐색기 등으로 각 메서드를 추가로 학습하길 권장합니다.

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