我需要读取其名称传递给我的方法的成员的值(它可以是字段或属性)。这是我检索MemberInfo的方式:

MemberInfo member = itemType.GetField(fieldName) as MemberInfo ?? itemType.GetProperty(fieldName) as MemberInfo;


接下来,我想检查已找到的成员的类型(字段/属性)。正确的方法是什么?

最佳答案

您可以使用PropertyTypePropertyInfo属性,如果FieldType可以使用FieldInfo

MemberInfo member = itemType.GetField(fieldName) as MemberInfo ?? itemType.GetProperty(fieldName) as MemberInfo;
Type type = member is PropertyInfo ? ((PropertyInfo)member).PropertyType : ((FieldInfo)member).FieldType;

10-08 20:05