Да, вы можете использовать:
object value = fieldInfo.GetValue(null);
По сути, это просто статические поля только для чтения. Обратите внимание, что не не получает перечисление из строки ... но если вам нужно сделать это, вы можете использовать Enum.Parse
.
Следует отметить одну вещь - если вы используете .NET 3.5, весь ваш код может быть упрощен с помощью LINQ:
var values = from field in enumType.GetFields()
from EntityNameAttribute attribute in
field.GetCustomAttributes((typeof(EntityNameAttribute), false)
where attribute.Name == name
select field.GetValue(null);
(Предполагается, что если в есть несколько атрибутов определенного типа, вам все равно, какой из них имеет правильное имя, и только один будет иметь правильное имя .)