C# Class Signum.Utilities.ExpressionTrees.ExpressionCleaner

Implementation of SimpleExpressionVisitor that does the replacement * MethodExpanderAttribute * MemberXXXExpression static field * ExpressionExtensions.Expand method It also simplifies and skip evaluating short circuited subexpresions Evaluates constant subexpressions
Inheritance: System.Linq.Expressions.ExpressionVisitor
Datei anzeigen Open project: signumsoftware/framework Class Usage Examples

Public Methods

Method Description
BindMemberExpression ( MemberExpression m, bool allowPolymorphics ) : Expression
BindMethodExpression ( MethodCallExpression m, bool allowPolymorphics ) : Expression
Clean ( Expression expr ) : Expression
Clean ( Expression expr, Expression>.Func partialEval, bool shortCircuit ) : Expression
GetFieldExpansion ( Type decType, MemberInfo mi ) : LambdaExpression
HasExpansions ( Type type, MemberInfo mi ) : bool

Protected Methods

Method Description
VisitBinary ( BinaryExpression b ) : Expression
VisitConditional ( ConditionalExpression c ) : Expression
VisitInvocation ( InvocationExpression iv ) : Expression
VisitMember ( MemberExpression m ) : Expression
VisitMethodCall ( MethodCallExpression m ) : Expression

Private Methods

Method Description
BaseMember ( MemberInfo mi ) : MemberInfo
GetBool ( Expression exp ) : bool
GetExpansion ( MemberInfo mi ) : LambdaExpression
GetMember ( Type decType, MemberInfo mi ) : MemberInfo
IsStatic ( MemberInfo mi ) : bool

Method Details

BindMemberExpression() public static method

public static BindMemberExpression ( MemberExpression m, bool allowPolymorphics ) : Expression
m System.Linq.Expressions.MemberExpression
allowPolymorphics bool
return System.Linq.Expressions.Expression

BindMethodExpression() public static method

public static BindMethodExpression ( MethodCallExpression m, bool allowPolymorphics ) : Expression
m System.Linq.Expressions.MethodCallExpression
allowPolymorphics bool
return System.Linq.Expressions.Expression

Clean() public static method

public static Clean ( Expression expr ) : Expression
expr System.Linq.Expressions.Expression
return System.Linq.Expressions.Expression

Clean() public static method

public static Clean ( Expression expr, Expression>.Func partialEval, bool shortCircuit ) : Expression
expr System.Linq.Expressions.Expression
partialEval Expression>.Func
shortCircuit bool
return System.Linq.Expressions.Expression

GetFieldExpansion() public static method

public static GetFieldExpansion ( Type decType, MemberInfo mi ) : LambdaExpression
decType System.Type
mi System.Reflection.MemberInfo
return System.Linq.Expressions.LambdaExpression

HasExpansions() public static method

public static HasExpansions ( Type type, MemberInfo mi ) : bool
type System.Type
mi System.Reflection.MemberInfo
return bool

VisitBinary() protected method

protected VisitBinary ( BinaryExpression b ) : Expression
b System.Linq.Expressions.BinaryExpression
return System.Linq.Expressions.Expression

VisitConditional() protected method

protected VisitConditional ( ConditionalExpression c ) : Expression
c System.Linq.Expressions.ConditionalExpression
return System.Linq.Expressions.Expression

VisitInvocation() protected method

protected VisitInvocation ( InvocationExpression iv ) : Expression
iv System.Linq.Expressions.InvocationExpression
return System.Linq.Expressions.Expression

VisitMember() protected method

protected VisitMember ( MemberExpression m ) : Expression
m System.Linq.Expressions.MemberExpression
return System.Linq.Expressions.Expression

VisitMethodCall() protected method

protected VisitMethodCall ( MethodCallExpression m ) : Expression
m System.Linq.Expressions.MethodCallExpression
return System.Linq.Expressions.Expression