protected void Application_Start() { GlobalConfiguration.Configure(WebApiConfig.Register); _container = new LightInject.ServiceContainer(); Assembly assembly = typeof(WebApiApplication).Assembly; foreach (var controller in assembly.GetTypes().Where(t => typeof(ApiController).IsAssignableFrom(t))) { _container.Register(controller); } // LightInject's singleton is PerContainerLifetime // http://stackoverflow.com/questions/26948063/resolve-instances-in-static-functions-using-lightinject _container.Register<ISampleService, SampleService>(new LightInject.PerContainerLifetime()); _container.Register<NHibernate.ISessionFactory>(factory => DomainMapping.Mapper.SessionFactory, new LightInject.PerContainerLifetime()); _container.Register<IDomainAccessFactory>(factory => new DomainAccessFactory(_container.GetInstance<NHibernate.ISessionFactory>()), new LightInject.PerContainerLifetime()); GlobalConfiguration.Configuration.Services.Replace(typeof(System.Web.Http.Dispatcher.IHttpControllerActivator), new ControllerActivator(_container)); }
protected void Application_Start() { GlobalConfiguration.Configure(WebApiConfig.Register); _container = new LightInject.ServiceContainer(); Assembly assembly = typeof(WebApiApplication).Assembly; foreach (var controller in assembly.GetTypes().Where(t => typeof(ApiController).IsAssignableFrom(t))) { _container.Register(controller); } // LightInject's singleton is PerContainerLifetime // http://stackoverflow.com/questions/26948063/resolve-instances-in-static-functions-using-lightinject _container.Register <ISampleService, SampleService>(new LightInject.PerContainerLifetime()); _container.Register <NHibernate.ISessionFactory>(factory => DomainMapping.Mapper.SessionFactory, new LightInject.PerContainerLifetime()); _container.Register <IDomainAccessFactory>(factory => new DomainAccessFactory(_container.GetInstance <NHibernate.ISessionFactory>()), new LightInject.PerContainerLifetime()); GlobalConfiguration.Configuration.Services.Replace(typeof(System.Web.Http.Dispatcher.IHttpControllerActivator), new ControllerActivator(_container)); }
/// <summary> /// Initialize instance. /// </summary> /// <param name="mefContainer">MEF container.</param> /// <param name="diContainer">3rd party container.</param> public void Initialize(IServiceContainer mefContainer, LightInject.IServiceContainer diContainer) { this.MEFContainer = mefContainer; this.DIContainer = diContainer; this.IsInitialized = true; Initialized?.Invoke(this, EventArgs.Empty); }
public ControllerActivator(LightInject.IServiceContainer container) { _container = container; }
static DependencyFactory() { Container = new LightInject.ServiceContainer(); }
public ControllerActivator(LightInject.IServiceContainer container) { _container = container; }