コード例 #1
0
            IUnityContainer RegisterCommon(
                IUnityContainer container,
                IDictionary <RegistrationLookup, ContainerRegistration> registrations,
                bool isTest)
            {
                container
                //.RegisterTypeIfNot<IDatabaseInitializer<TestRepository>, MigrateDatabaseToLatestVersion<TestRepository, Configuration>>(registrations)
                .RegisterTypeIfNot <IDatabaseInitializer <TestRepository>, DropCreateDatabaseAlways <TestRepository> >(registrations)

                .UnsafeRegister(EFRepositoryBase.Registrar <TestRepository>(), registrations, isTest)

                // repositories registration
                // the repository used by the services
                .RegisterTypeIfNot <IRepository, TestRepository>(
                    registrations,
                    new HierarchicalLifetimeManager(),
                    new InjectionProperty(
                        nameof(IRepository.OptimisticConcurrencyStrategy),
                        Program.OptimisticConcurrencyStrategy))

                // a transient repository used by tests and anything else.
                .RegisterTypeIfNot <IRepository, TestRepository>(
                    registrations,
                    "transient",
                    new InjectionProperty(
                        nameof(IRepository.OptimisticConcurrencyStrategy),
                        Program.OptimisticConcurrencyStrategy))
                ;

                return(container);
            }
コード例 #2
0
            protected override void DoRegister(
                IUnityContainer container,
                IDictionary <RegistrationLookup, ContainerRegistration> registrations)
            {
                if (container == null)
                {
                    throw new ArgumentNullException(nameof(container));
                }
                if (registrations == null)
                {
                    throw new ArgumentNullException(nameof(registrations));
                }

                container
                .Register(EFRepositoryBase.Registrar <TestEFRepository>(), true)

                //.RegisterTypeIfNot<IDatabaseInitializer<TestEFRepository>, MigrateDatabaseToLatestVersion<TestEFRepository, Configuration>>(registrations, new InjectionConstructor(true))
                //.RegisterTypeIfNot<IStoreIdProvider, SqlStoreIdProvider>(registrations, new ContainerControlledLifetimeManager())

                .RegisterTypeIfNot <IDatabaseInitializer <TestEFRepository>, DropCreateDatabaseAlways <TestEFRepository> >(registrations)
                .RegisterTypeIfNot <IStoreIdProvider, HiLoStoreIdProvider>(registrations, new ContainerControlledLifetimeManager())

                // the repository used by the HiLo generator
                .RegisterTypeIfNot <IRepository, TestEFRepository>(registrations, HiLoStoreIdProvider.HiLoGeneratorsRepositoryResolveName, new InjectionConstructor(new InjectionParameter <string>(ConnectionString)))
                // the repository used by the rest of the tests
                .RegisterTypeIfNot <IRepository, TestEFRepository>(registrations, new InjectionConstructor(new InjectionParameter <string>(ConnectionString)))
                ;
            }