Проблема LightInject с DependencyResolver
Я написал конфигурацию для lightinject в отдельный класс.
В приложении 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);
1 ответ
Вы поняли это:) Метод EnableMvc позаботится об этом.
Проверьте http://www.lightinject.net/ для получения дополнительной информации.
С наилучшими пожеланиями
Бернхард Рихтер