난 당신이 이런 식으로 뭔가를 찾고 생각을 이러한 속성에서.
public static string GetAttributeValue<T>(this Enum e, Func<T, object> selector) where T : Attribute
{
var output = e.ToString();
var member = e.GetType().GetMember(output).First();
var attributes = member.GetCustomAttributes(typeof(T), false);
if (attributes.Length > 0)
{
var firstAttr = (T)attributes[0];
var str = selector(firstAttr).ToString();
output = string.IsNullOrWhiteSpace(str) ? output : str;
}
return output;
}
예 :
var x = SomethingType.Type1.GetAttributeValue<DisplayAttribute>(e => e.Name);
.......
class ModelClass
{
public SomethingType Type { get; set; }
public string TypeName
{
get { return Type.GetAttributeValue<DisplayAttribute>(attribute => attribute.Name); }
}
}
나는이를 좋아하지만, 난 여전히 더 나은 답변을 기다리고 –