小编drs*_*sim的帖子

MVC 3 beta + Dependency Resolver + Unity =出了问题

我试图在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)

c# dependency-injection unity-container asp.net-mvc-3

5
推荐指数
2
解决办法
4633
查看次数