У меня есть следующий вспомогательный метод в классе ViewModelBase
, который наследуется другими моделями представления:
public string GetEnumName<T>(Enum value)
{
Type enumType = typeof(T);
var enumValue = Enum.GetName(enumType, value);
MemberInfo member = enumType.GetMember(enumValue)[0];
var attrs = member.GetCustomAttributes(typeof(DisplayAttribute), false);
var outString = ((DisplayAttribute)attrs[0]).Name;
if (((DisplayAttribute)attrs[0]).ResourceType != null)
{
outString = ((DisplayAttribute)attrs[0]).GetName();
}
return outString;
}
Затем я вызываю его из представления следующим образом:
<p>
@{var rel = Model.GetEnumDisplayName<Enums.wheteverEnum>(Model.wheteverEnum); }
@rel
</p>
Вопрос в том, могу ли я использовать этот метод, чтобы мне не приходилось указывать тип enum
?По сути, я хотел бы сделать это для всех enum
с:
@ Model.GetEnumDisplayName (Model.wheteverEnum)
Нет typeof
, нет T
, нет необходимости добавлятьссылка на пространство имен Enums
в представлении ...
Возможно?