protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); LightInjectConfig.Congigurate(); }
protected void Application_Start() { Database.SetInitializer <ApplicationDbContext>(new AppDbInitializer()); AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); LightInjectConfig.Configurate(); }
/// <summary>Integrates Unity when the application starts.</summary> public static LightInject.ServiceContainer Start() { // Register Types var container = new LightInject.ServiceContainer(); LightInjectConfig.RegisterTypes(container); Settings.container = container; return(container); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); LightInjectConfig.Configurate(); Database.SetInitializer(new ContentInitializer()); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); LightInjectConfig.Configurate(); log4net.Config.XmlConfigurator.Configure(); }
/// <summary> /// Configures the dependency injection container and backing dependencies used by the application. /// </summary> /// <param name="config"> /// The configuration object for WebApi. /// Configurations are built on to or extended from this object for application functionality. /// </param> /// <param name="overrides">ONLY FOR TESTING - /// REALLY DO NOT USE THIS EXCEPT FOR TESTING IT WILL STOP PROPER CONTAINER VERIFICATION /// CANNOT USE RegisterConditional WHILE USING THIS SOLUTION /// </param> internal static void ConfigureDependencyInjection(HttpConfiguration config, List <Action <ServiceContainer, HttpConfiguration> > overrides = null) { var serviceContainer = new ServiceContainer(); serviceContainer.RegisterApiControllers(); serviceContainer.Register <Models.IRequestMessageProvider, RequestMessageProvider>(new PerContainerLifetime()); serviceContainer.Register <Elli.Erg.WebApi.IRequestMessageProvider, RequestMessageProvider>(new PerContainerLifetime()); serviceContainer.Register <ICaller, RequestCaller>(new PerContainerLifetime()); serviceContainer.Register <ICorrelationProvider, RequestCaller>(new PerContainerLifetime()); serviceContainer.Register <IRestStorage, HttpRequestMessageRestStorage>(new PerContainerLifetime()); serviceContainer.Register <IProvider <IRestStorage> >(factory => new LightInjectProvider <IRestStorage>(serviceContainer), new PerContainerLifetime()); serviceContainer.Register <ICorrelationSettings, Elli.Erg.Correlation.CorrelationSettings>(new PerContainerLifetime()); serviceContainer.Register <ICorrelationFilter, CorrelationFilter>(new PerContainerLifetime()); serviceContainer.Register <IProvider <ICorrelationInfo>, CorrelationProvider>(new PerContainerLifetime()); //serviceContainer.Register<IProvider<ICorrelationInfo>>(factory => new LightInjectProvider<ICorrelationInfo>(serviceContainer), new PerContainerLifetime()); serviceContainer.Register <IDurationProvider, ApiTimerDurationProvider>(new PerContainerLifetime()); serviceContainer.Register <IExecutionTimeProvider, ApiTimerDurationProvider>(new PerContainerLifetime()); serviceContainer.Register <ICustomerInstance, EllieMaeAuthorization>(new PerContainerLifetime()); serviceContainer.Register <IApiUser, EllieMaeAuthorization>(new PerContainerLifetime()); serviceContainer.Register <ICustomerClientId, EllieMaeAuthorization>(new PerContainerLifetime()); //Register filters //serviceContainer.Register<IAuthenticationFilter,EPPSAuthenticationFilter>(GetLifetime()); //serviceContainer.Register<IExceptionFilter, SignalFxFilter>(GetLifetime()); //serviceContainer.Register<ActionFilterAttribute, SignalFxFilter>(GetLifetime()); //serviceContainer.Register<ActionFilterAttribute, UserIdReplacementFilter>(GetLifetime()); //serviceContainer.Register<IExceptionFilter, ServiceLoggingFilter>(GetLifetime()); //serviceContainer.Register<ActionFilterAttribute, ServiceLoggingFilter>(GetLifetime()); //config.Filters.Add(new EPPSAuthenticationFilter( // config.DependencyResolver.GetService<ILogger>(), // config.DependencyResolver.GetService<IAuthenticationSecrets>())); //config.Filters.Add(new SignalFxFilter( //(IMetricsFactory)config.DependencyResolver.GetService(typeof(IMetricsFactory)))); //config.Filters.Add(new UserIdReplacementFilter()); //config.Filters.Add(new ServiceLoggingFilter( // (ILogger)config.DependencyResolver.GetService(typeof(ILogger)))); LightInjectConfig.Build(serviceContainer); InterceptorsManager.Register(serviceContainer); config.RegisterErgFilter( serviceContainer.GetInstance <ICorrelationFilter>(), serviceContainer.GetInstance <IRestStorage>()); ConfigureFilters(GlobalConfiguration.Configuration, serviceContainer); serviceContainer.EnablePerWebRequestScope(); serviceContainer.EnableWebApi(GlobalConfiguration.Configuration); //ServicesManager.Register(serviceContainer); // these registrations / settings are specific to the webapi integration for the application //serviceContainer.EnableHttpRequestMessageTracking(config); //container.RegisterWebApiControllers(config); // these registrations are dependent upon the webapi runtime //var requestMessageProvider = Lifestyle.Singleton.CreateRegistration<RequestMessageProvider>(container); //container.AddRegistration(typeof(Models.IRequestMessageProvider), requestMessageProvider); //container.AddRegistration(typeof(Elli.Erg.WebApi.IRequestMessageProvider), requestMessageProvider); //var requestCallerRegistration = Lifestyle.Singleton.CreateRegistration<RequestCaller>(container); //container.AddRegistration(typeof(ICaller), requestCallerRegistration); //container.AddRegistration(typeof(ICorrelationProvider), requestCallerRegistration); // shared library setup - ERG //container.RegisterSingleton<IRestStorage, HttpRequestMessageRestStorage>(); //container.RegisterSingleton<IProvider<IRestStorage>, LightInjectProvider<IRestStorage>>(); //container.RegisterSingleton<Elli.Erg.Correlation.ICorrelationSettings, Elli.Erg.Correlation.CorrelationSettings>(); //container.RegisterSingleton<ICorrelationFilter, CorrelationFilter>(); //container.RegisterSingleton<IProvider<ICorrelationInfo>, CorrelationProvider>(); //var timingProvider = Lifestyle.Singleton.CreateRegistration<ApiTimerDurationProvider>(container); //container.AddRegistration(typeof(IDurationProvider), timingProvider); //container.AddRegistration(typeof(IExecutionTimeProvider), timingProvider); //var ellieMaeAuthorizationRegistration = Lifestyle.Singleton.CreateRegistration<EllieMaeAuthorization>(container); //container.AddRegistration(typeof(ICustomerInstance), ellieMaeAuthorizationRegistration); //container.AddRegistration(typeof(IApiUser), ellieMaeAuthorizationRegistration); //container.AddRegistration(typeof(ICustomerClientId), ellieMaeAuthorizationRegistration); //serviceContainer.Register(factory => ServiceLocator.Current // .GetInstance<AwsClientInstantiater<IAmazonKeyManagementService, AmazonKeyManagementServiceClient>>() // .GetAwsClient(credentials => new AmazonKeyManagementServiceClient(credentials))); //using (serviceContainer.BeginScope()) //{ // config.RegisterErgFilter( // serviceContainer.GetInstance<ICorrelationFilter>(), // serviceContainer.GetInstance<IRestStorage>()); // //var firstInstance = container.GetInstance<IFoo>(); // //var secondInstance = container.GetInstance<IFoo>(); // //Assert.AreSame(firstInstance, secondInstance); //} ServiceLocator.SetLocatorProvider(() => new LightInjectServiceLocator(serviceContainer)); //config.RegisterErgFilter( // config.DependencyResolver.GetService<ICorrelationFilter>(), // config.DependencyResolver.GetService<IRestStorage>()); //config.RegisterErgFilter( // ServiceLocator.Current.GetInstance<ICorrelationFilter>(), // ServiceLocator.Current.GetInstance<IRestStorage>()); }