我遇到了控制器的这个问题:
尝试创建类型为“ * .WebMvc.Controllers.HomeController”的控制器时发生错误。确保控制器有一个无参数的公共构造函数。
找到ApiController的解决方案,但没有找到关于普通Controller的任何信息。
从头开始创建新的 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<object> GetServices(Type serviceType)
{
try
{
return _container.ResolveAll(serviceType);
}catch
{
return null;
}
}
private void RegisterTypes()
{
_container.RegisterType<IAccountingUow, AccountingUow>();
}
}
全球.asax
protected void Application_Start()
{
//Omitted
DependencyResolver.SetResolver( new UnityDependencyResolver( new UnityContainer()));
}
调试后发现,甚至没有尝试解决 IAccountingUow。
我做错了什么?一整天都在想。