示例#1
0
 private static void RegisterPostBuiltAction(this AutofacServiceCollection services)
 {
     services.AddPostRegisterAction("AfterBuild", builder =>
                                    builder.RegisterBuildCallback(container => {
         services.ActiveLogEventEnrichers();
         StaticServiceResolver.SetResolver(container.Resolve <ILoggingServiceProvider>());
     }));
 }
示例#2
0
        private static void BuildAndActiveConfiguration(this AutofacServiceCollection services)
        {
            services.BuildConfiguration();
            services.ActiveSinkSettings();
            services.ActiveOriginConfiguration();

            services.AddDependency(s => s.TryAddSingleton(Options.Create((LoggingOptions)services.ExposeLogSettings())));
            services.AddDependency(s => s.TryAddSingleton(services.ExposeLoggingConfiguration()));
        }
示例#3
0
 private static void RegisterPostBuiltAction(this AutofacServiceCollection services)
 {
     services.AddPostRegisterAction("AfterBuild", builder =>
                                    builder.RegisterBuildCallback(container => {
         StaticInstanceForILanguageServiceProvider.SetInstance(container.Resolve <ILanguageServiceProvider>());
         StaticInstanceForTextProvider.SetInstance(container.Resolve <ITextProvider>());
         StaticFlag.HasInit             = true;
         StaticFlag.ExpectedServiceName = "AutofacImpl";
     }));
 }
示例#4
0
        public AppHostBase Run(IAppBuilder app)
        {
            IServiceCollection services = null;

            switch (ContainerType)
            {
            case DiType.Autofac:
                services = new AutofacServiceCollection();
                break;

            case DiType.NInject:
                services = new NInjectServiceCollection(new Ninject.StandardKernel(), _ => HttpContext.Current);
                break;
            }
            return(this.Set(app).Configure(services).Start());
        }
示例#5
0
        // ConfigureServices is where you register dependencies. This gets
        // called by the runtime before the Configure method, below.
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            // Add services to the collection.
            services.AddMvc()
            .AddControllersAsServices();

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            // Register the Swagger generator, defining one or more Swagger documents
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "Livit Leave Management Api", Version = "v1"
                });
            });

            services.AddApiVersioning();

            services.AddDbContext <LivitDbContext>(options => options.UseSqlite("FileName=./livit.db"));

            // Create the container builder.
            var builder = new ContainerBuilder();

            // Register services
            builder.RegisterInstance(this.Configuration)
            .As <IConfiguration>()
            .SingleInstance();

            // Register dependencies, populate the services from
            // the collection, and build the container. If you want
            // to dispose of the container at the end of the app,
            // be sure to keep a reference to it as a property or field.
            ILivitServiceCollection autofacServices      = new AutofacServiceCollection(builder);
            InitializationContext   configurationContext = new AutofacInitializationContext(autofacServices);

            // Initialize modules
            InitializationProcessor.Initialize(configurationContext);

            builder.Populate(services);
            this.ApplicationContainer = builder.Build();

            // Create the IServiceProvider based on the container.
            return(new AutofacServiceProvider(this.ApplicationContainer));
        }