Убедитесь, что в Unity у контроллера есть открытый конструктор без параметров
Я получил эту проблему с контроллером:
Произошла ошибка при попытке создать контроллер типа '*.WebMvc.Controllers.HomeController», Убедитесь, что у контроллера есть открытый конструктор без параметров.
Найти решение для ApiController, но нене могу найти ничего о нормальном контроллере.
Создан новый проект MVC 4 с нуля.
HomeController.cs:
public class HomeController : Controller
{
private IAccountingUow _uow;
public HomeController(IAccountingUow uow)
{
_uow = uow;
}
UnityDependencyResoler.cs:
public class UnityDependencyResolver : IDependencyResolver
{
private IUnityContainer _container;
public UnityDependencyResolver(IUnityContainer container)
{
_container = container;
RegisterTypes();
}
public object GetService(Type serviceType)
{
try
{
return _container.Resolve(serviceType);
}catch
{
return null;
}
}
public IEnumerable GetServices(Type serviceType)
{
try
{
return _container.ResolveAll(serviceType);
}catch
{
return null;
}
}
private void RegisterTypes()
{
_container.RegisterType();
}
}
Global.asax
protected void Application_Start()
{
//Omitted
DependencyResolver.SetResolver( new UnityDependencyResolver( new UnityContainer()));
}
Отладил и обнаружил, что даже нет попыток разрешить IAccountingUow.
Что я'я делаю неправильно? Думая об этом целый день.