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
Afficher le fichier Open project: signumsoftware/framework Class Usage Examples

Méthodes publiques

Méthode 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

Méthodes protégées

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

Private Methods

Méthode 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 méthode

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

BindMethodExpression() public static méthode

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

Clean() public static méthode

public static Clean ( Expression expr ) : Expression
expr System.Linq.Expressions.Expression
Résultat System.Linq.Expressions.Expression

Clean() public static méthode

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

GetFieldExpansion() public static méthode

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

HasExpansions() public static méthode

public static HasExpansions ( Type type, MemberInfo mi ) : bool
type System.Type
mi System.Reflection.MemberInfo
Résultat bool

VisitBinary() protected méthode

protected VisitBinary ( BinaryExpression b ) : Expression
b System.Linq.Expressions.BinaryExpression
Résultat System.Linq.Expressions.Expression

VisitConditional() protected méthode

protected VisitConditional ( ConditionalExpression c ) : Expression
c System.Linq.Expressions.ConditionalExpression
Résultat System.Linq.Expressions.Expression

VisitInvocation() protected méthode

protected VisitInvocation ( InvocationExpression iv ) : Expression
iv System.Linq.Expressions.InvocationExpression
Résultat System.Linq.Expressions.Expression

VisitMember() protected méthode

protected VisitMember ( MemberExpression m ) : Expression
m System.Linq.Expressions.MemberExpression
Résultat System.Linq.Expressions.Expression

VisitMethodCall() protected méthode

protected VisitMethodCall ( MethodCallExpression m ) : Expression
m System.Linq.Expressions.MethodCallExpression
Résultat System.Linq.Expressions.Expression