public static T With <T>(this T t, Expression <Action <T> > expr) { var eqeq = new ExpressionWithEqualEqualOrCall <T>(t); eqeq.Lambda(expr); var propertyNameAndValues = eqeq.Parsed.ToArray(); var createInstance = new CreateInstanceFromValues <T>(); return(createInstance.Create(t, propertyNameAndValues)); }
public static TRet As <TRet>(this Object t, Expression <Func <TRet, bool> > expr) { var eqeq = new ExpressionWithEqualEqualOrCall <TRet>(t); eqeq.Lambda(expr); var propertyNameAndValues = eqeq.Parsed.ToArray(); var createInstance = new CreateInstanceFromValues <TRet>(t.GetType()); return(createInstance.Create(t, propertyNameAndValues)); }
public static T With <T>(this T t, Expression <Func <T, bool> > expr) { var eqeq = new ExpressionWithEqualEqualOrCall <T>(t); eqeq.Lambda(expr); var createInstance = new CreateInstanceFromValues <T> (); return(createInstance.Create(t, eqeq.Parsed.ToArray())); }