using System.Linq.Expressions;
public static void Main()
var fooVariable = Expression.Variable(typeof(Foo));
var block = Expression.Block(new[] { fooVariable },
Expression.Assign(fooVariable, Expression.New(typeof(Foo))),
Expression.Assign(Expression.Property(fooVariable, "Bar"), Expression.Constant("bar")),
Expression.Assign(Expression.Property(fooVariable, "Baz"), Expression.Constant(5)),
var lambda = Expression.Lambda<Func<Foo>>(block).Compile();
public string Bar { get; set; }
public int Baz { get; set; }