Skip to content

Instantly share code, notes, and snippets.

@millimoose
Created May 26, 2014 15:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save millimoose/660fb981baa022c948e3 to your computer and use it in GitHub Desktop.
Save millimoose/660fb981baa022c948e3 to your computer and use it in GitHub Desktop.
Expression<Action<TObject, TProperty>>
SetterFromGetter<TObject, TProperty>(Expression<Func<TObject, TProperty>> getter)
{
var objectParam = getter.Parameters.Single();
var valueParam = Expression.Parameter(getter.Body.Type);
return Expression.Lambda<Action<TObject, TProperty>>(
Expression.Block(
Expression.Assign(
getter.Body,
valueParam
),
Expression.Empty()
),
new[] {
objectParam,
valueParam
}
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment