Beispiel #1
0
 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);
 }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
 }