public static T value <T>(this oo oo, string prop) { return((T)oo.prop(prop).obj); }
public static oo prop(this oo oo, string prop) { var value = oo.type.GetProperty(prop).GetValue(oo.obj, new object[0]); return(new oo(value)); }