MVC4和“为此对象定义的无参数构造函数”。使用Unity注入依赖项时出错?

时间:2012-09-26 18:06:00

标签: asp.net-mvc-4 unity-container visual-studio-2012

我不知道Unity为什么不注入或者忽略了我在构造函数中有参数的事实。我看到了这个post,但它更多地讨论了NinJect,但让我相信Unity和Vs2012可能存在类似的问题。我知道Unity正在工作,因为在我的Application_Start代码中,在我的统一注册后,我从统一解析了一个接口并找回了所有需要的对象。我不知道为什么我的控制器的带参数的构造函数被忽略了。我也用统一注册控制器。当我尝试击中该控制器时,我收到No parameterless constructor defined for this object.错误。

我很好奇是否有其他人遇到过同样的问题。

3 个答案:

答案 0 :(得分:2)

我必须向Steven提供道具,因为他指引我朝着正确的方向,但基本上,我使用的方法是使用ApiController注册我的解析器,而不是使用SetResolver方法用标准控制器注册它。

答案 1 :(得分:0)

我遇到了同样的问题。我安装了Unity,然后安装了Unity.Mvc4。我卸载了与Unity有关的所有内容,只重新安装了Unity.Mvc4,所有内容都按宣传方式工作。

答案 2 :(得分:0)

对于Unity中的此错误,请转到Global.asax并编写以下代码。 初始化Bootstrapper。

protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        Bootstrapper.Initialise();





    }