C# Class DryIoc.FactoryCompiler.EmittingVisitor

Supports emitting of selected expressions, e.g. lambda are not supported yet. When emitter find not supported expression it will return false from TryVisit, so I could fallback to normal and slow Expression.Compile.
Mostra file Open project: csteeg/BoC

Public Methods

Method Description
TryVisit ( Expression expr, ILGenerator il ) : bool

Private Methods

Method Description
EmitLoadConstantInt ( ILGenerator il, int i ) : void
EmitMethodCall ( MethodInfo method, ILGenerator il ) : void
VisitArrayIndex ( BinaryExpression node, ILGenerator il ) : bool
VisitBinary ( BinaryExpression b, ILGenerator il ) : bool
VisitConstant ( ConstantExpression node, ILGenerator il ) : bool
VisitConvert ( UnaryExpression node, ILGenerator il ) : bool
VisitExpressionList ( IList eList, ILGenerator state ) : bool
VisitFactoryDelegateParameters ( Expression expr, ILGenerator il ) : bool
VisitMemberAccess ( MemberExpression expr, ILGenerator il ) : bool
VisitMemberInit ( MemberInitExpression mi, ILGenerator il ) : bool
VisitMethodCall ( MethodCallExpression expr, ILGenerator il ) : bool
VisitNew ( NewExpression node, ILGenerator il ) : bool
VisitNewArray ( NewArrayExpression node, ILGenerator il ) : bool

Method Details

TryVisit() public static method

public static TryVisit ( Expression expr, ILGenerator il ) : bool
expr System.Linq.Expressions.Expression
il System.Reflection.Emit.ILGenerator
return bool