private Expression CreateMemberInit(
IReadOnlyList<DynamicProperty> properties,
IReadOnlyList<Expression> expressions)
{
var type = GenerateDynamicClassType(properties);
var bindings = new MemberBinding[properties.Count];
for (int i = 0; i < bindings.Length; i++)
{
bindings[i] = Expression.Bind(type.GetProperty(properties[i].Name), expressions[i]);
}
return Expression.MemberInit(Expression.New(type), bindings);
}