Ejemplo n.º 1
0
        public IDIContainer CreateBuilder(IServiceCollection services)
        {
            //打开框架跟踪日志
            SwitchManager.EnableFrameworkTrace();
            services.AddLogging(cfg =>
            {
                cfg.AddTraceSource("", new DefaultTraceListener());
            }).Configure <LoggerFilterOptions>(option =>
            {
            });

            ContainerManager.Init(services, configureServiceAction: ConfigureServices);
            return(ContainerManager.Container);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Настройка служб приложения.
        /// </summary>
        /// <param name="services"></param>
        /// <returns></returns>
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            var logger = new NLogLogger();

            logger.Info("Настройка версионирования API.");
            services.AddApiVersioning(options =>
            {
                options.DefaultApiVersion = new ApiVersion(1, 0);
                options.AssumeDefaultVersionWhenUnspecified = true;
            });

            logger.Info("Настройка контроллеров.");
            services.AddMvc().AddControllersAsServices();

            logger.Info("Регистрация сервисов в IoC-контейнере.");
            var container = new ContainerManager();

            container.Populate(services);

            container.RegisterType <Midway.Common.Mapping.AutoMapper.Services.MappingService>();
            container.RegisterAssemblyOf <Sales.AssembleRef>();
            container.RegisterAssemblyOf <Data.AssemblyRef>();
            container.RegisterAssemblyOf <AssemblyRef>();

            logger.Info("Регистрация контроллеров в IoC-контейнере.");
            Assembly.GetExecutingAssembly()
            .GetTypes()
            .Where(t => typeof(Controller).IsAssignableFrom(t))
            .ForEach(t => container.RegisterType(InstanceScope.Transient, t, t));

            logger.Info("Регистрация логгера в IoC-контейнере.");
            container.RegisterType(InstanceScope.Transient, typeof(NLogLogger), typeof(ILogger));
            container.RegisterModule <NLogModule>();

            logger.Info("Инициализация IoC-контейнера.");
            container.Init();

            var serviceProvider = container.GetServiceProvider();

            logger.Info("Завершена настройка служб.");
            return(serviceProvider);
        }
Ejemplo n.º 3
0
 public static void RegisterServices(IServiceCollection services)
 {
     ContainerManager.Init(services, configureServiceAction: RegisterServices);
 }
Ejemplo n.º 4
0
 public IDIContainer CreateBuilder(IServiceCollection services)
 {
     ContainerManager.Init(services, serviceRegisterAction: RegisterServices);
     return(ContainerManager.Container);
 }
Ejemplo n.º 5
0
 public static void RegisterServices(IServiceCollection services)
 {
     ContainerManager.Init(services, serviceRegisterAction: RegisterServices);
     RepositoryConfig.Init();
 }