使用StructureMap进行依赖注入......我做错了什么?

时间:2011-10-25 13:05:24

标签: c# asp.net-mvc-3 structuremap

我有一个简单的MVC3 Web应用程序。我使用structureMap作为依赖注入。

它与我的HomeController工作正常,但当我去第二个控制器我有错误: MissingMethodException:没有零参数构造函数。

我按照教程中发现的每一步......

THX。

以下是代码:

public class HomeController : AuthorizedController
{
    IRepository<User> _repository;

    public HomeController(IRepository<User> repository)
    {
        _repository = repository;
    }
}


public class AccountController : AuthorizedController
{
    private readonly IRepository<User> _repository;

    public AccountController(IRepository<User> repository)
    {
        _repository = repository;
    }
}

我使用这个简单的注射:

For<IRepository<User>>().Use<UserRepository>();

1 个答案:

答案 0 :(得分:0)

你确定它与HomeController一起使用吗?如果您有第二个控制器的错误,那么HomeController应该出现错误?

确保您的基本控制器AuthorizedController具有无参数的公共构造函数

如果没有为类定义构造函数,则将创建无参数构造函数。但是,如果使用参数定义构造函数,则不会创建无参数构造函数。

  ASP.net MVC控制器工厂 -    System.Web.Mvc.DefaultControllerFactory.CreateController 需要无参数构造函数