我试图在Unity中使用Dependency Resolver,当我的Controller创建时遇到了一些问题.这里控制器的例子:
public class AccountController : Controller
{
private readonly ICourseService _courseService;
public AccountController(ICourseService courseService)
{
_courseService = courseService;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当Controller尝试创建时 - 我得到了一个异常"没有为此对象定义无参数构造函数." 我甚至尝试为此控制器添加默认构造函数,但是courseService没有创建.还尝试使用[Dependency]属性添加属性 - 没有任何反应.这是Dependency Resolver类:
public class UnityDependencyResolver : IDependencyResolver
{
private readonly IUnityContainer _container;
public UnityDependencyResolver(IUnityContainer container)
{
_container = container;
}
public object GetService(Type serviceType)
{
return _container.IsRegistered(serviceType) ? _container.Resolve(serviceType) : null;
}
public IEnumerable<object> GetServices(Type serviceType)
{
return _container.IsRegistered(serviceType) ? _container.ResolveAll(serviceType) : new List<object>();
}
}
Run Code Online (Sandbox Code Playgroud)
和Global.asax.cs:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes); …Run Code Online (Sandbox Code Playgroud)