我想使用Unity作爲ASP.NET MVC 3應用程序的IoC容器,但是我的UnityDependecyResolver
類遇到問題。目前,它看起來像這樣(從網路上的複製,因爲我不認爲團結本身自帶這個):Unity的IDependencyResolver實現中的GetService方法應該如何?
public class UnityDependencyResolver : IDependencyResolver
{
readonly IUnityContainer _container;
public UnityDependencyResolver(IUnityContainer container)
{
this._container = container;
}
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 new List<object>();
}
}
}
不過,我在嘗試訪問任何控制器時,這種運行時錯誤:
IControllerFactory的「System.Web.Mvc.DefaultControllerFactory」未返回名稱爲「Account」的控制器。
This StructureMap article建議我應該修改GetService
方法,但是,我是很新的MVC兩者統一,我不知道應該如何準確樣子。