How one can assign the following statement using expression Tree
myFoo.myBar = new Bar();
My Code is as follows -
public static Action<TObject, TProperty>CreateNewObjectAndSet<TObject,TProperty>(string propertyName)
{
ParameterExpression paramExpression = Expression.Parameter(typeof(TObject));
MemberExpression propertyGetterExpression = Expression.Property(paramExpression, propertyName);
var newObject = Expression.New(typeof(TProperty));
var x = Expression.Assign(propertyGetterExpression, newObject);
var paramExpressions = new ParameterExpression[2];
paramExpressions[0] = paramExpression;
paramExpressions[1] = newObject;
Action<TObject, TProperty> result = Expression.Lambda<Action<TObject, TProperty>>(x, paramExpressions).Compile();
return result;
}
Compile error occurs at the statement
paramExpression[1] = newObject;