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

本文关键字:错了 什么 注入 StructureMap 依赖 使用 | 更新日期: 2023-09-27 18:12:25

我有一个简单的mvc 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>();

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

你确定它与HomeController一起工作吗?如果第二个控制器出现错误那么home控制器也应该出现错误?

确保你的基本控制器AuthorizedController有一个无参数的公共构造函数

如果不为类定义构造函数,则将创建一个无参数构造函数。但是,如果定义了带参数的构造函数,则不会创建无参数构造函数。

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