示例#1
0
        public RootDependencyResolver(
            DefaultProviderServicesResolver defaultProviderServicesResolver,
            DatabaseInitializerResolver databaseInitializerResolver)
        {
            DebugCheck.NotNull(defaultProviderServicesResolver);
            DebugCheck.NotNull(databaseInitializerResolver);

            _databaseInitializerResolver = databaseInitializerResolver;

            _resolvers.Add(new TransactionContextInitializerResolver());
            _resolvers.Add(_databaseInitializerResolver);
            _resolvers.Add(new DefaultExecutionStrategyResolver());
            _resolvers.Add(new CachingDependencyResolver(defaultProviderServicesResolver));
            _resolvers.Add(new CachingDependencyResolver(new DefaultProviderFactoryResolver()));
            _resolvers.Add(new CachingDependencyResolver(new DefaultInvariantNameResolver()));
            _resolvers.Add(new SingletonDependencyResolver <IDbConnectionFactory>(new LocalDbConnectionFactory()));
            _resolvers.Add(new SingletonDependencyResolver <Func <DbContext, IDbModelCacheKey> >(new DefaultModelCacheKeyFactory().Create));
            _resolvers.Add(new SingletonDependencyResolver <IManifestTokenResolver>(new DefaultManifestTokenResolver()));
            _resolvers.Add(new SingletonDependencyResolver <Func <DbConnection, string, HistoryContext> >(HistoryContext.DefaultFactory));
            _resolvers.Add(new SingletonDependencyResolver <IPluralizationService>(new EnglishPluralizationService()));
            _resolvers.Add(new SingletonDependencyResolver <AttributeProvider>(new AttributeProvider()));
            _resolvers.Add(new SingletonDependencyResolver <Func <DbContext, Action <string>, DatabaseLogFormatter> >((c, w) => new DatabaseLogFormatter(c, w)));
            _resolvers.Add(new SingletonDependencyResolver <Func <TransactionHandler> >(() => new DefaultTransactionHandler(), k => k is ExecutionStrategyKey));

#if NET40
            _resolvers.Add(new SingletonDependencyResolver <IDbProviderFactoryResolver>(new Net40DefaultDbProviderFactoryResolver()));
#else
            _resolvers.Add(new SingletonDependencyResolver <IDbProviderFactoryResolver>(new DefaultDbProviderFactoryResolver()));
#endif
            _resolvers.Add(new SingletonDependencyResolver <Func <IMetadataAnnotationSerializer> >(
                               () => new ClrTypeAnnotationSerializer(), XmlConstants.ClrTypeAnnotation));
            _resolvers.Add(new SingletonDependencyResolver <Func <IMetadataAnnotationSerializer> >(
                               () => new IndexAnnotationSerializer(), IndexAnnotation.AnnotationName));
        }
        public RootDependencyResolver(
            DefaultProviderServicesResolver defaultProviderServicesResolver,
            DatabaseInitializerResolver databaseInitializerResolver)
        {
            DebugCheck.NotNull(defaultProviderServicesResolver);
            DebugCheck.NotNull(databaseInitializerResolver);

            _databaseInitializerResolver = databaseInitializerResolver;

            _resolvers.Add(_databaseInitializerResolver);
            _resolvers.Add(new DefaultExecutionStrategyResolver());
            _resolvers.Add(new CachingDependencyResolver(defaultProviderServicesResolver));
            _resolvers.Add(new CachingDependencyResolver(new DefaultProviderFactoryResolver()));
            _resolvers.Add(new CachingDependencyResolver(new DefaultInvariantNameResolver()));
            _resolvers.Add(new SingletonDependencyResolver<IDbConnectionFactory>(new SqlConnectionFactory()));
            _resolvers.Add(new SingletonDependencyResolver<Func<DbContext, IDbModelCacheKey>>(new DefaultModelCacheKeyFactory().Create));
            _resolvers.Add(new SingletonDependencyResolver<IManifestTokenResolver>(new DefaultManifestTokenResolver()));
            _resolvers.Add(new SingletonDependencyResolver<Func<DbConnection, string, HistoryContext>>(HistoryContext.DefaultFactory));
            _resolvers.Add(new SingletonDependencyResolver<IPluralizationService>(new EnglishPluralizationService()));
            _resolvers.Add(new SingletonDependencyResolver<AttributeProvider>(new AttributeProvider()));
            _resolvers.Add(new SingletonDependencyResolver<Func<DbContext, Action<string>, DbCommandLogger>>((c, w) => new DbCommandLogger(c, w)));

#if NET40
            _resolvers.Add(new SingletonDependencyResolver<IDbProviderFactoryResolver>(new Net40DefaultDbProviderFactoryResolver()));
#else
            _resolvers.Add(new SingletonDependencyResolver<IDbProviderFactoryResolver>(new DefaultDbProviderFactoryResolver()));
#endif
        }
        public RootDependencyResolver(
            DefaultProviderServicesResolver defaultProviderServicesResolver,
            DatabaseInitializerResolver databaseInitializerResolver)
        {
            DebugCheck.NotNull(defaultProviderServicesResolver);
            DebugCheck.NotNull(databaseInitializerResolver);

            _databaseInitializerResolver = databaseInitializerResolver;

            _resolvers.Add(new TransactionContextInitializerResolver());
            _resolvers.Add(_databaseInitializerResolver);
            _resolvers.Add(new DefaultExecutionStrategyResolver());
            _resolvers.Add(new CachingDependencyResolver(defaultProviderServicesResolver));
            _resolvers.Add(new CachingDependencyResolver(new DefaultProviderFactoryResolver()));
            _resolvers.Add(new CachingDependencyResolver(new DefaultInvariantNameResolver()));
            _resolvers.Add(new SingletonDependencyResolver<IDbConnectionFactory>(new SqlConnectionFactory()));
            _resolvers.Add(new SingletonDependencyResolver<Func<DbContext, IDbModelCacheKey>>(new DefaultModelCacheKeyFactory().Create));
            _resolvers.Add(new SingletonDependencyResolver<IManifestTokenResolver>(new DefaultManifestTokenResolver()));
            _resolvers.Add(new SingletonDependencyResolver<Func<DbConnection, string, HistoryContext>>(HistoryContext.DefaultFactory));
            _resolvers.Add(new SingletonDependencyResolver<IPluralizationService>(new EnglishPluralizationService()));
            _resolvers.Add(new SingletonDependencyResolver<AttributeProvider>(new AttributeProvider()));
            _resolvers.Add(new SingletonDependencyResolver<Func<DbContext, Action<string>, DatabaseLogFormatter>>((c, w) => new DatabaseLogFormatter(c, w)));
            _resolvers.Add(new SingletonDependencyResolver<Func<TransactionHandler>>(() => new DefaultTransactionHandler(), k => k is ExecutionStrategyKey));

#if NET40
            _resolvers.Add(new SingletonDependencyResolver<IDbProviderFactoryResolver>(new Net40DefaultDbProviderFactoryResolver()));
#else
            _resolvers.Add(new SingletonDependencyResolver<IDbProviderFactoryResolver>(new DefaultDbProviderFactoryResolver()));
#endif
            _resolvers.Add(new SingletonDependencyResolver<Func<IMetadataAnnotationSerializer>>(
                () => new ClrTypeAnnotationSerializer(), XmlConstants.ClrTypeAnnotation));
            _resolvers.Add(new SingletonDependencyResolver<Func<IMetadataAnnotationSerializer>>(
                () => new IndexAnnotationSerializer(), IndexAnnotation.AnnotationName));
        }
        public RootDependencyResolver(
            DefaultProviderServicesResolver defaultProviderServicesResolver,
            DatabaseInitializerResolver databaseInitializerResolver)
        {
            DebugCheck.NotNull(defaultProviderServicesResolver);
            DebugCheck.NotNull(databaseInitializerResolver);

            _databaseInitializerResolver = databaseInitializerResolver;

            _resolvers.Add(_databaseInitializerResolver);
            _resolvers.Add(new DefaultExecutionStrategyResolver());
            _resolvers.Add(new CachingDependencyResolver(defaultProviderServicesResolver));
            _resolvers.Add(new CachingDependencyResolver(new DefaultProviderFactoryResolver()));
            _resolvers.Add(new CachingDependencyResolver(new DefaultInvariantNameResolver()));
            _resolvers.Add(new SingletonDependencyResolver <IDbConnectionFactory>(new SqlConnectionFactory()));
            _resolvers.Add(new SingletonDependencyResolver <Func <DbContext, IDbModelCacheKey> >(new DefaultModelCacheKeyFactory().Create));
            _resolvers.Add(new SingletonDependencyResolver <IManifestTokenResolver>(new DefaultManifestTokenResolver()));
            _resolvers.Add(new SingletonDependencyResolver <Func <DbConnection, string, HistoryContext> >(HistoryContext.DefaultFactory));
            _resolvers.Add(new SingletonDependencyResolver <IPluralizationService>(new EnglishPluralizationService()));
            _resolvers.Add(new SingletonDependencyResolver <AttributeProvider>(new AttributeProvider()));
            _resolvers.Add(new SingletonDependencyResolver <Func <DbContext, Action <string>, DbCommandLogger> >((c, w) => new DbCommandLogger(c, w)));

#if NET40
            _resolvers.Add(new SingletonDependencyResolver <IDbProviderFactoryResolver>(new Net40DefaultDbProviderFactoryResolver()));
#else
            _resolvers.Add(new SingletonDependencyResolver <IDbProviderFactoryResolver>(new DefaultDbProviderFactoryResolver()));
#endif
        }
        private static DatabaseInitializerResolver CreateResolver(IDatabaseInitializer <FakeContext1> initializer = null)
        {
            var resolver = new DatabaseInitializerResolver();

            resolver.SetInitializer(typeof(FakeContext1), initializer ?? new Mock <IDatabaseInitializer <FakeContext1> >().Object);
            resolver.SetInitializer(typeof(FakeContext2), new Mock <IDatabaseInitializer <FakeContext2> >().Object);
            return(resolver);
        }
 public void The_database_initializer_resolver_can_be_obtained_from_the_root_resolver()
 {
     var initializerResolver = new DatabaseInitializerResolver();
     Assert.Same(
         initializerResolver,
         new RootDependencyResolver(
             new DefaultProviderServicesResolver(), initializerResolver)
             .DatabaseInitializerResolver);
 }
            public void The_database_initializer_resolver_can_be_obtained_from_the_root_resolver()
            {
                var initializerResolver = new DatabaseInitializerResolver();

                Assert.Same(
                    initializerResolver,
                    new RootDependencyResolver(
                        new DefaultProviderServicesResolver(), initializerResolver)
                    .DatabaseInitializerResolver);
            }
            public void GetService_can_be_accessed_from_multiple_threads_concurrently()
            {
                for (var i = 0; i < 30; i++)
                {
                    var bag         = new ConcurrentBag <IDatabaseInitializer <FakeContext1> >();
                    var resolver    = new DatabaseInitializerResolver();
                    var initializer = new Mock <IDatabaseInitializer <FakeContext1> >().Object;

                    ExecuteInParallel(
                        () =>
                    {
                        resolver.SetInitializer(typeof(FakeContext1), initializer);
                        bag.Add(resolver.GetService <IDatabaseInitializer <FakeContext1> >());
                    });

                    Assert.Equal(20, bag.Count);
                    Assert.True(bag.All(c => initializer == c));
                }
            }
示例#9
0
            public void GetService_can_be_accessed_from_multiple_threads_concurrently()
            {
                for (var i = 0; i < 30; i++)
                {
                    var bag = new ConcurrentBag<IDatabaseInitializer<FakeContext1>>();
                    var resolver = new DatabaseInitializerResolver();
                    var initializer = new Mock<IDatabaseInitializer<FakeContext1>>().Object;

                    ExecuteInParallel(
                        () =>
                            {
                                resolver.SetInitializer(typeof(FakeContext1), initializer);
                                bag.Add(resolver.GetService<IDatabaseInitializer<FakeContext1>>());
                            });

                    Assert.Equal(20, bag.Count);
                    Assert.True(bag.All(c => initializer == c));
                }
            }
示例#10
0
 public RootDependencyResolver(
     DefaultProviderServicesResolver defaultProviderServicesResolver,
     DatabaseInitializerResolver databaseInitializerResolver)
 {
     this._databaseInitializerResolver = databaseInitializerResolver;
     this._resolvers.Add((IDbDependencyResolver) new TransactionContextInitializerResolver());
     this._resolvers.Add((IDbDependencyResolver)this._databaseInitializerResolver);
     this._resolvers.Add((IDbDependencyResolver) new DefaultExecutionStrategyResolver());
     this._resolvers.Add((IDbDependencyResolver) new CachingDependencyResolver((IDbDependencyResolver)defaultProviderServicesResolver));
     this._resolvers.Add((IDbDependencyResolver) new CachingDependencyResolver((IDbDependencyResolver) new DefaultProviderFactoryResolver()));
     this._resolvers.Add((IDbDependencyResolver) new CachingDependencyResolver((IDbDependencyResolver) new DefaultInvariantNameResolver()));
     this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <IDbConnectionFactory>((IDbConnectionFactory) new SqlConnectionFactory()));
     this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <Func <DbContext, IDbModelCacheKey> >(new Func <DbContext, IDbModelCacheKey>(new DefaultModelCacheKeyFactory().Create)));
     this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <IManifestTokenResolver>((IManifestTokenResolver) new DefaultManifestTokenResolver()));
     this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <Func <DbConnection, string, HistoryContext> >(HistoryContext.DefaultFactory));
     this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <IPluralizationService>((IPluralizationService) new EnglishPluralizationService()));
     this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <AttributeProvider>(new AttributeProvider()));
     this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <Func <DbContext, Action <string>, DatabaseLogFormatter> >((Func <DbContext, Action <string>, DatabaseLogFormatter>)((c, w) => new DatabaseLogFormatter(c, w))));
     this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <Func <TransactionHandler> >((Func <TransactionHandler>)(() => (TransactionHandler) new DefaultTransactionHandler()), (Func <object, bool>)(k => k is ExecutionStrategyKey)));
     this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <IDbProviderFactoryResolver>((IDbProviderFactoryResolver) new DefaultDbProviderFactoryResolver()));
     this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <Func <IMetadataAnnotationSerializer> >((Func <IMetadataAnnotationSerializer>)(() => (IMetadataAnnotationSerializer) new ClrTypeAnnotationSerializer()), (object)"ClrType"));
     this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <Func <IMetadataAnnotationSerializer> >((Func <IMetadataAnnotationSerializer>)(() => (IMetadataAnnotationSerializer) new IndexAnnotationSerializer()), (object)"Index"));
 }
示例#11
0
 private static DatabaseInitializerResolver CreateResolver(IDatabaseInitializer<FakeContext1> initializer = null)
 {
     var resolver = new DatabaseInitializerResolver();
     resolver.SetInitializer(typeof(FakeContext1), initializer ?? new Mock<IDatabaseInitializer<FakeContext1>>().Object);
     resolver.SetInitializer(typeof(FakeContext2), new Mock<IDatabaseInitializer<FakeContext2>>().Object);
     return resolver;
 }