public object GetValue(object o) { if(IsProperty) { if(prop.CanRead) return prop.GetValue(o, null); else return null; } else return field.GetValue(o); }