Class SetExpressionRewriter
- Namespace
- NMF.Expressions
- Assembly
- NMF.Expressions.dll
An expression visitor that turns getter functions into setters
public class SetExpressionRewriter : ExpressionVisitor
- Inheritance
-
SetExpressionRewriter
- Inherited Members
- Extension Methods
Constructors
SetExpressionRewriter(Expression)
Create a new instance
public SetExpressionRewriter(Expression value)
Parameters
valueExpressionThe expression that is going to be inverted
Properties
Value
Gets the value of the rewrite
public Expression Value { get; set; }
Property Value
Methods
CreateSetter(LambdaExpression)
Create a setter for the given getter expression
public static LambdaExpression CreateSetter(LambdaExpression getter)
Parameters
getterLambdaExpressionThe getter expression
Returns
- LambdaExpression
An expression that corresponds to the setter of the given getter
CreateSetter<TValue>(Expression<Func<TValue>>)
Create a setter for the given getter expression
public static Expression<Action<TValue>> CreateSetter<TValue>(Expression<Func<TValue>> getter)
Parameters
getterExpression<Func<TValue>>The getter expression
Returns
- Expression<Action<TValue>>
An expression that corresponds to the setter of the given getter
Type Parameters
TValueThe return type of the getter expression
CreateSetter<T, TValue>(Expression<Func<T, TValue>>)
Create a setter for the given getter expression
public static Expression<Action<T, TValue>> CreateSetter<T, TValue>(Expression<Func<T, TValue>> getter)
Parameters
getterExpression<Func<T, TValue>>The getter expression
Returns
- Expression<Action<T, TValue>>
An expression that corresponds to the setter of the given getter
Type Parameters
TThe type of the first parameter
TValueThe return type of the getter expression
CreateSetter<T1, T2, TValue>(Expression<Func<T1, T2, TValue>>)
Create a setter for the given getter expression
public static Expression<Action<T1, T2, TValue>> CreateSetter<T1, T2, TValue>(Expression<Func<T1, T2, TValue>> getter)
Parameters
getterExpression<Func<T1, T2, TValue>>The getter expression
Returns
- Expression<Action<T1, T2, TValue>>
An expression that corresponds to the setter of the given getter
Type Parameters
T1The type of the first parameter
T2The type of the second parameter
TValueThe return type of the getter expression
Visit(Expression)
Dispatches the expression to one of the more specialized visit methods in this class.
public override Expression Visit(Expression node)
Parameters
nodeExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitBinary(BinaryExpression)
Visits the children of the BinaryExpression.
protected override Expression VisitBinary(BinaryExpression node)
Parameters
nodeBinaryExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitConditional(ConditionalExpression)
Visits the children of the ConditionalExpression.
protected override Expression VisitConditional(ConditionalExpression node)
Parameters
nodeConditionalExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitDefault(DefaultExpression)
Visits the DefaultExpression.
protected override Expression VisitDefault(DefaultExpression node)
Parameters
nodeDefaultExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitElementInit(ElementInit)
Visits the children of the ElementInit.
protected override ElementInit VisitElementInit(ElementInit node)
Parameters
nodeElementInitThe expression to visit.
Returns
- ElementInit
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitIndex(IndexExpression)
Visits the children of the IndexExpression.
protected override Expression VisitIndex(IndexExpression node)
Parameters
nodeIndexExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitListInit(ListInitExpression)
Visits the children of the ListInitExpression.
protected override Expression VisitListInit(ListInitExpression node)
Parameters
nodeListInitExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitMember(MemberExpression)
Visits the children of the MemberExpression.
protected override Expression VisitMember(MemberExpression node)
Parameters
nodeMemberExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitMemberAssignment(MemberAssignment)
Visits the children of the MemberAssignment.
protected override MemberAssignment VisitMemberAssignment(MemberAssignment node)
Parameters
nodeMemberAssignmentThe expression to visit.
Returns
- MemberAssignment
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitMemberInit(MemberInitExpression)
Visits the children of the MemberInitExpression.
protected override Expression VisitMemberInit(MemberInitExpression node)
Parameters
nodeMemberInitExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitMemberListBinding(MemberListBinding)
Visits the children of the MemberListBinding.
protected override MemberListBinding VisitMemberListBinding(MemberListBinding node)
Parameters
nodeMemberListBindingThe expression to visit.
Returns
- MemberListBinding
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitMemberMemberBinding(MemberMemberBinding)
Visits the children of the MemberMemberBinding.
protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
Parameters
nodeMemberMemberBindingThe expression to visit.
Returns
- MemberMemberBinding
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitMethodCall(MethodCallExpression)
Visits the children of the MethodCallExpression.
protected override Expression VisitMethodCall(MethodCallExpression node)
Parameters
nodeMethodCallExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitNew(NewExpression)
Visits the children of the NewExpression.
protected override Expression VisitNew(NewExpression node)
Parameters
nodeNewExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitNewArray(NewArrayExpression)
Visits the children of the NewArrayExpression.
protected override Expression VisitNewArray(NewArrayExpression node)
Parameters
nodeNewArrayExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitParameter(ParameterExpression)
Visits the ParameterExpression.
protected override Expression VisitParameter(ParameterExpression node)
Parameters
nodeParameterExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
VisitUnary(UnaryExpression)
Visits the children of the UnaryExpression.
protected override Expression VisitUnary(UnaryExpression node)
Parameters
nodeUnaryExpressionThe expression to visit.
Returns
- Expression
The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.