2014-05-09 20 views
0

我已經寫入配置lightinject到一個單獨的類。LightInject問題與DependencyResolver

在Global.ascx應用程序啓動我

AreaRegistration.RegisterAllAreas(); 
RouteConfig.RegisterRoutes(RouteTable.Routes); 
var container = new ServiceContainer(); 
DependencyResolver.SetResolver(new LightInjectDependencyResolver(container)); 

我LightInjectDependencyResolver類的樣子:

public class LightInjectDependencyResolver : IDependencyResolver 
    { 
    private readonly ServiceContainer _serviceContainer; 
    public LightInjectDependencyResolver(ServiceContainer serviceContainer) 
    { 
     _serviceContainer = serviceContainer; 
     _serviceContainer.RegisterControllers(); 
     _serviceContainer.RegisterAssembly("mydll*.dll"); 
     _serviceContainer.EnableMvc(); 
    } 

    public object GetService(Type serviceType) 
    { 
     return _serviceContainer.GetInstance(serviceType); 
    } 

    public IEnumerable<object> GetServices(Type serviceType) 
    { 
     return _serviceContainer.GetAllInstances(serviceType); 
    } 
} 

我得到的死亡與錯誤的黃屏:

無法解析請鍵入:System.Web.Mvc.IControllerFactory,服務名稱:

編輯

我想我已經對它進行了排序,基本上我不需要DependecnyReolver並且看起來像它是內部的。所以你仍然可以做這樣的事情:

IProductService a = DependencyResolver.Current.GetService<IProductService>(); 
a.GetById(1); 

回答