public ClimbDelegateFactory(Type processorType, IStateMemberProvider stateMemberProvider, IMethodMapper methodMapper, ClimbStore climbStore, IExpressionCompiler compiler) { _processorType = processorType; _stateMemberProvider = stateMemberProvider; _methodMapper = methodMapper; _climbStore = climbStore; _compiler = compiler; _mutator = new CallProcessMutator(_processorType, _methodMapper); }
private void ClimReference(TField value, Type type) { if (type == typeof(TRuntime)) { ClimbDelegate <TRuntime> climbDelegate = Member.Climb; climbDelegate(_processor, (TRuntime)value); } else { ClimbDelegate <TField> climbDelegate = ClimbStore.GetClimb <TField>(type); climbDelegate(_processor, value); } }
private void ClimbStruct(TField value, Type type) { object boxed = value; ClimbDelegate <object> climbDelegate; if (type == typeof(TRuntime)) { climbDelegate = Member.StructClimb; } else { climbDelegate = ClimbStore.GetClimb <object>(type); } climbDelegate(_processor, boxed); SetField((TField)boxed); }
public DefaultGraphClimber(IStateMemberProvider stateMemberProvider, IMethodMapper methodMapper, IExpressionCompiler expressionCompiler) { _climbStore = new ClimbStore(typeof(TProcessor), stateMemberProvider, methodMapper, expressionCompiler); }