2017-05-10 3 views
-1

속성에서 매개 변수로 열거 형을 사용하려고하고 열거 형을 사용하여 내 코드에서 물건을 결정하지만 실제 열거 형을 얻으려고 애 쓰고 있습니다. 여기 속성에서 값을 얻으려면 어떻게해야합니까?

public enum DataTypes 
{ 
    ShortText, 
    LongText, 
    Number, 
    Boolean, 
    Image, 
    DatePicker, 
    RichText, 
    Content, 
    DateTimePicker, 
    ProductStatus, 
    DeliveryMethod 

} 

는 속성입니다 : 여기

내 열거입니다 내가 얻을 것이다 어떻게

[DataType(Type=DataTypes.ShortText)] 
    public string store { get; set; } 

:

public class DataType : Attribute 
{ 
    public DataTypes Type { get; set; } 
} 

그리고 마지막으로, 여기에 내가 적용 곳이다 특성을 DataTypes.ShortText를 반환하는 PropertyInfo에서?

+0

리플렉션을 통해 속성 인스턴스를 검색해야합니다. 그런 다음'Type' 속성 값을 얻습니다. 너 뭐 해봤 니? _specifically_ 일하는 데 어려움을 겪고 있습니까? 문제가 무엇이든지간에 문제없이 재현 할 수있는 좋은 [mcve]가 포함되도록 질문을 수정하고 문제가 무엇인지 명확하고 자세한 설명이 포함되도록하십시오. –

+0

"enum"에 관한 것이 아니기 때문에 질문 제목을 제안/편집했습니다. 속성에서 얻으려는 값이'enum','int','string' 등이라면 답은 동일합니다. –

답변

1

먼저 속성을 가져와야합니다. 가장 간단한 형태는 다음과 같을 수 있습니다 :

var method = typeof(SomeClass).GetMethod("store"); 

GetMethodMethodInfo의 인스턴스를 반환합니다. 그것은 현재의 경우

그런 다음 속성을 검색 할 수 있습니다 : 해당 유형의 어떤 속성이 존재하지 않는 경우는

var attribute = method.GetCustomAttribute<DataType>(); 

GetCustomAttribute는 null를 돌려줍니다. 그러나 해당 특성이 있으면 GetCustomAttribute이 반환합니다.

if (attribute != null) 
{ 
    var myDataType = attribute.Type; 
} 
+0

감사합니다. =) – Jannik

관련 문제