コード例 #1
0
        public void SetUp()
        {
            _typeAssemblerMock       = MockRepository.GenerateStrictMock <ITypeAssembler>();
            _assemblyContextPoolMock = MockRepository.GenerateStrictMock <IAssemblyContextPool>();

            _cache           = new TypeCache(_typeAssemblerMock, _assemblyContextPoolMock);
            _additionalTypes = (IDictionary <object, Lazy <Type> >)PrivateInvoke.GetNonPublicField(_cache, "_additionalTypes");
        }
コード例 #2
0
        protected override ICodeManager NewCodeManager(ITypeCache typeCache, ITypeAssembler typeAssembler, IAssemblyContextPool assemblyContextPool)
        {
            var codeManager = base.NewCodeManager(typeCache, typeAssembler, assemblyContextPool);

            AssemblyTrackingCodeManager = new AssemblyTrackingCodeManager(codeManager);

            return(AssemblyTrackingCodeManager);
        }
コード例 #3
0
 protected virtual IPipeline NewPipeline(
     PipelineSettings settings,
     ICodeManager codeManager,
     IReflectionService reflectionService,
     ITypeAssembler typeAssembler)
 {
     return(new Pipeline(settings, codeManager, reflectionService, typeAssembler));
 }
コード例 #4
0
        public void SetUp()
        {
            _typeCacheMock       = MockRepository.GenerateStrictMock <ITypeCache>();
            _typeAssemblerMock   = MockRepository.GenerateStrictMock <ITypeAssembler>();
            _assemblyContextPool = MockRepository.GenerateStrictMock <IAssemblyContextPool>();

            _manager = new CodeManager(_typeCacheMock, _typeAssemblerMock, _assemblyContextPool);
        }
コード例 #5
0
        public void SetUp()
        {
            _typeAssemblerMock    = MockRepository.GenerateStrictMock <ITypeAssembler>();
            _typeCacheMock        = MockRepository.GenerateStrictMock <ITypeCache>();
            _constructorCallCache = MockRepository.GenerateStrictMock <IConstructorCallCache>();
            _constructorForAssembledTypeCacheMock = MockRepository.GenerateStrictMock <IConstructorForAssembledTypeCache>();

            _service = new ReflectionService(_typeAssemblerMock, _typeCacheMock, _constructorCallCache, _constructorForAssembledTypeCacheMock);
        }
コード例 #6
0
        public ConstructorForAssembledTypeCache(ITypeAssembler typeAssembler, IConstructorDelegateFactory constructorDelegateFactory)
        {
            ArgumentUtility.CheckNotNull("typeAssembler", typeAssembler);
            ArgumentUtility.CheckNotNull("constructorDelegateFactory", constructorDelegateFactory);

            _typeAssembler = typeAssembler;
            _constructorDelegateFactory = constructorDelegateFactory;
            _createConstructorCallFunc  = CreateConstructorCall;
        }
コード例 #7
0
        public CodeManager(ITypeCache typeCache, ITypeAssembler typeAssembler, IAssemblyContextPool assemblyContextPool)
        {
            ArgumentUtility.CheckNotNull("assemblyContextPool", assemblyContextPool);
            ArgumentUtility.CheckNotNull("typeAssembler", typeAssembler);
            ArgumentUtility.CheckNotNull("typeCache", typeCache);

            _typeCache           = typeCache;
            _typeAssembler       = typeAssembler;
            _assemblyContextPool = assemblyContextPool;
        }
コード例 #8
0
ファイル: TypeCache.cs プロジェクト: re-motion/TypePipe
        public TypeCache(ITypeAssembler typeAssembler, IAssemblyContextPool assemblyContextPool)
        {
            ArgumentUtility.CheckNotNull("typeAssembler", typeAssembler);
            ArgumentUtility.CheckNotNull("assemblyContextPool", assemblyContextPool);

            _typeAssembler       = typeAssembler;
            _assemblyContextPool = assemblyContextPool;

            _createAssembledTypeFunc  = CreateAssembledType;
            _createAdditionalTypeFunc = CreateAdditionalType;
        }
コード例 #9
0
        public void SetUp()
        {
            _settings              = PipelineSettings.New().Build();
            _codeManagerMock       = MockRepository.GenerateStrictMock <ICodeManager>();
            _reflectionServiceMock = MockRepository.GenerateStrictMock <IReflectionService>();
            _typeAssemblerMock     = MockRepository.GenerateStrictMock <ITypeAssembler>();

            _pipeline = new Pipeline(_settings, _codeManagerMock, _reflectionServiceMock, _typeAssemblerMock);

            _requestedType = ReflectionObjectMother.GetSomeType();
            _typeID        = AssembledTypeIDObjectMother.Create();
        }
コード例 #10
0
        public void SetUp()
        {
            _typeAssemblerMock = MockRepository.GenerateStrictMock <ITypeAssembler>();
            _constructorDelegateFactoryMock = MockRepository.GenerateStrictMock <IConstructorDelegateFactory>();

            _cache = new ConstructorForAssembledTypeCache(_typeAssemblerMock, _constructorDelegateFactoryMock);

            _constructorCalls = (ConcurrentDictionary <ConstructorForAssembledTypeCacheKey, Delegate>)PrivateInvoke.GetNonPublicField(_cache, "_constructorCalls");

            _assembledType     = ReflectionObjectMother.GetSomeType();
            _delegateType      = ReflectionObjectMother.GetSomeDelegateType();
            _allowNonPublic    = BooleanObjectMother.GetRandomBoolean();
            _generatedCtorCall = new Func <int> (() => 7);
        }
コード例 #11
0
        public ReflectionService(
            ITypeAssembler typeAssembler,
            ITypeCache typeCache,
            IConstructorCallCache constructorCallCache,
            IConstructorForAssembledTypeCache constructorForAssembledTypeCache)
        {
            ArgumentUtility.CheckNotNull("typeAssembler", typeAssembler);
            ArgumentUtility.CheckNotNull("typeCache", typeCache);
            ArgumentUtility.CheckNotNull("constructorCallCache", constructorCallCache);
            ArgumentUtility.CheckNotNull("constructorForAssembledTypeCache", constructorForAssembledTypeCache);

            _typeAssembler                    = typeAssembler;
            _typeCache                        = typeCache;
            _constructorCallCache             = constructorCallCache;
            _constructorForAssembledTypeCache = constructorForAssembledTypeCache;
        }
コード例 #12
0
        public Pipeline(
            PipelineSettings settings,
            ICodeManager codeManager,
            IReflectionService reflectionService,
            ITypeAssembler typeAssembler)
        {
            ArgumentUtility.CheckNotNull("settings", settings);
            ArgumentUtility.CheckNotNull("codeManager", codeManager);
            ArgumentUtility.CheckNotNull("reflectionService", reflectionService);
            ArgumentUtility.CheckNotNull("typeAssembler", typeAssembler);

            _settings          = settings;
            _codeManager       = codeManager;
            _reflectionService = reflectionService;
            _typeAssembler     = typeAssembler;
        }
コード例 #13
0
 protected virtual IConstructorForAssembledTypeCache NewConstructorForAssembledTypeCache(
     ITypeAssembler typeAssembler,
     IConstructorDelegateFactory constructorDelegateFactory)
 {
     return(new ConstructorForAssembledTypeCache(typeAssembler, constructorDelegateFactory));
 }
コード例 #14
0
 protected virtual ITypeCache NewTypeCache(ITypeAssembler typeAssembler, IAssemblyContextPool assemblyContextPool)
 {
     return(new TypeCache(typeAssembler, assemblyContextPool));
 }
コード例 #15
0
        protected virtual IReflectionService NewReflectionService(ITypeCache typeCache, ITypeAssembler typeAssembler)
        {
            var constructorDelegateFactory = NewConstructorDelegateFactory();
            var constructorCallCache       = NewConstructorCallCache(typeCache, constructorDelegateFactory);
            var reverseTypeCache           = NewConstructorForAssembledTypeCache(typeAssembler, constructorDelegateFactory);

            return(new ReflectionService(typeAssembler, typeCache, constructorCallCache, reverseTypeCache));
        }
コード例 #16
0
 protected virtual ICodeManager NewCodeManager(ITypeCache typeCache, ITypeAssembler typeAssembler, IAssemblyContextPool assemblyContextPool)
 {
     return(new CodeManager(typeCache, typeAssembler, assemblyContextPool));
 }