public static object GetValue(this MemberInfo member, object component) { if (component == null && !member.CanGetFromNullEx()) { return(null); } if (member is PropertyInfo) { return(((PropertyInfo)member).GetValue(component, null)); } else if (member is FieldInfo) { return(((FieldInfo)member).GetValue(component)); } MethodInfo method = member as MethodInfo; if (method != null && typeof(void) != method.ReturnType && method.GetParameters().Length == 0) { return(method.Invoke(component, null)); } return(null); }