internal ILGeneratorInstructionVisitor(
         IServiceLocator serviceLocator,
         IILGenerator generator,
         IDictionary<VariableReference, LocalBuilder> locals,
         ITypeResolver typeResolver,
         IOpCodeMapper opCodeMapper)
     : this(generator,
         locals,
         typeResolver,
         serviceLocator.Resolve<IMethodResolver>(),
         serviceLocator.Resolve<IFieldResolver>(),
         opCodeMapper)
 {
 }
 internal ILGeneratorInstructionVisitor(
     IServiceLocator serviceLocator,
     IILGenerator generator,
     IDictionary <VariableReference, LocalBuilder> locals,
     ITypeResolver typeResolver,
     IOpCodeMapper opCodeMapper)
     : this(generator,
            locals,
            typeResolver,
            serviceLocator.Resolve <IMethodResolver>(),
            serviceLocator.Resolve <IFieldResolver>(),
            opCodeMapper)
 {
 }
        internal ILGeneratorInstructionVisitor(IILGenerator generator,
                                               IDictionary <VariableReference, LocalBuilder> locals,
                                               ITypeResolver typeResolver,
                                               IMethodResolver methodResolver,
                                               IFieldResolver fieldResolver,
                                               IOpCodeMapper opCodeMapper)
        {
            ArgumentChecker.NotNull(generator, () => generator);
            ArgumentChecker.NotNull(locals, () => locals);
            ArgumentChecker.NotNull(typeResolver, () => typeResolver);
            ArgumentChecker.NotNull(methodResolver, () => methodResolver);
            ArgumentChecker.NotNull(fieldResolver, () => fieldResolver);
            ArgumentChecker.NotNull(opCodeMapper, () => opCodeMapper);

            _generator      = generator;
            _locals         = locals;
            _typeResolver   = typeResolver;
            _methodResolver = methodResolver;
            _fieldResolver  = fieldResolver;
            _opCodeMapper   = opCodeMapper;
        }
        internal ILGeneratorInstructionVisitor(IILGenerator generator,
            IDictionary<VariableReference, LocalBuilder> locals,
            ITypeResolver typeResolver,
            IMethodResolver methodResolver,
            IFieldResolver fieldResolver,
            IOpCodeMapper opCodeMapper)
        {
            ArgumentChecker.NotNull(generator, () => generator);
            ArgumentChecker.NotNull(locals, () => locals);
            ArgumentChecker.NotNull(typeResolver, () => typeResolver);
            ArgumentChecker.NotNull(methodResolver, () => methodResolver);
            ArgumentChecker.NotNull(fieldResolver, () => fieldResolver);
            ArgumentChecker.NotNull(opCodeMapper, () => opCodeMapper);

            _generator = generator;
            _locals = locals;
            _typeResolver = typeResolver;
            _methodResolver = methodResolver;
            _fieldResolver = fieldResolver;
            _opCodeMapper = opCodeMapper;
        }