public IObjectProvider Build(IServiceCollection serviceCollection = null)
        {
            serviceCollection = serviceCollection ?? new ServiceCollection();
            _container.BuildServiceProvider(serviceCollection);

            Register <IObjectProvider>(context =>
            {
                var provider = context as ObjectProvider;
                if (provider == null)
                {
                    throw new Exception("object provider is not Unity ObjectProvider!");
                }

                return(new ObjectProvider(provider.UnityContainer));
            }, ServiceLifetime.Scoped);

            var objectProvider = new ObjectProvider(_container);

            return(objectProvider);
        }
Beispiel #2
0
        protected override IContainerExtension CreateContainerExtension()
        {
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddLogging(loggingBuilder =>
                                         loggingBuilder.AddSerilog(dispose: true));

            serviceCollection.AddDbContext <WordNetDbContext>(optionsBuilder =>
                                                              optionsBuilder.UseSqlite(ConfigurationManager.ConnectionStrings["WordNetData"].ConnectionString));

            var connectionString = ConfigurationManager.ConnectionStrings["UserData"].ConnectionString
                                   .Replace("%APP_DATA%", GetUserAppDataPath());

            serviceCollection.AddDbContext <UserDbContext>(optionsBuilder =>
                                                           optionsBuilder.UseSqlite(connectionString));

            var container = new UnityContainer();

            container.BuildServiceProvider(serviceCollection);

            return(new UnityContainerExtension(container));
        }