private static object GetValue(this System.Reflection.MemberInfo member, object obj, object[] index = null) { switch (member) { case System.Reflection.FieldInfo field: return(field.GetValue(obj)); case System.Reflection.PropertyInfo property: return(property.GetValue(obj, index)); default: throw new ArgumentException($"unknown member type:{member.GetType().FullName}"); } }
public static MemberTypes GetMemberType(this System.Reflection.MemberInfo member) { if (member is System.Reflection.FieldInfo) { return(MemberTypes.Field); } if (member is System.Reflection.ConstructorInfo) { return(MemberTypes.Constructor); } if (member is System.Reflection.MethodInfo) { return(MemberTypes.Method); } if (member is System.Reflection.PropertyInfo) { return(MemberTypes.Property); } throw new Exception($"Unsupported member type: {member.GetType()}"); }