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

        }
Example #2
0
        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));
        }
Example #3
0
        /// <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;
 }
Example #5
0
 static DependencyFactory()
 {
     Container = new LightInject.ServiceContainer();
 }
Example #6
0
 public ControllerActivator(LightInject.IServiceContainer container)
 {
     _container = container;
 }