MemberInfo FieldInfo有什么区别

adr*_*dey 5 .net c# vb.net

我正在编写扩展以从获取描述和其他属性Enum。我看过使用的示例,FieldInfo而其他使用的示例MemberInfo。有人可以解释一下区别是什么,什么时候可以改变我应该使用的区别?

Him*_*ere 5

MemberInfo是抽象基类为两个FieldInfoPropertyInfo。因此,当您要访问字段使用时FieldInfo,请使用属性PropertyInfo

编辑:要获取在您的枚举值上设置的属性,您可以使用以下方法:

var attr = typeof(MyEnum).GetField(myEnumValue.ToString()).GetCustomAttributes(typeof(Description), false);

if (attr.Length > 0) return attr[0].Description;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,你也可以使用GetMember,而不是GetField作为GetCustomAttributes其上定义MemberInfo,并为此提供了两个FieldInfoPropertyInfo