/// <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); }