【问题标题】:A suitable constructor could not be located error找不到合适的构造函数错误
【发布时间】:2019-06-25 15:58:30
【问题描述】:

我在这段代码中遇到错误,不知道该怎么做。谁能告诉我问题可能是什么以及如何解决它。

错误:

处理请求时发生未处理的异常。 InvalidOperationException:找不到适合类型“Lic.Controllers.EchipamentController”的构造函数。确保类型是具体的,并且为公共构造函数的所有参数注册了服务。

查找适用的构造函数 堆栈查询 Cookie 标头 InvalidOperationException:找不到适合类型“Lic.Controllers.EchipamentController”的构造函数。确保类型是具体的,并且为公共构造函数的所有参数注册了服务。

namespace Licenta.Controllers
{
    public class EchipamentController:Controller
    {
        private readonly ICategoryRepository _categoryRepository;
        private readonly IEchipamentRepository _echipamentRepository;


        EchipamentController(ICategoryRepository categoryRepository, IEchipamentRepository echipamentRepository)
        {
            _categoryRepository = categoryRepository;
            _echipamentRepository = echipamentRepository;           
        }

        public ViewResult List()
        {
            var echipamente = _echipamentRepository.Echipamente;
            return View(echipamente);
        }
    }
}

我不知道如何处理该错误。

【问题讨论】:

  • 构造函数不公开。
  • 您使用的是什么 IOC 容器?你注册你的仓库了吗?
  • @MuhammadAli asp.net mvc。是的,我注册了存储库
  • @madreflection 如果我将构造函数声明为 public,它会说:“不一致的可访问性:参数类型“IEchipamentRepository”比方法“EchipamentController.EchipamentController(ICategoryRepository,IEchipamentRepository)”更难访问
  • 这些接口也需要公开。

标签: c# constructor controller


【解决方案1】:

在这部分代码中添加 public:

public EchipamentController(ICategoryRepository categoryRepository, IEchipamentRepository echipamentRepository)
    {
        _categoryRepository = categoryRepository;
        _echipamentRepository = echipamentRepository;           
    }

【讨论】:

    猜你喜欢
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2022-01-11
    • 2016-03-24
    • 2018-01-12
    • 1970-01-01
    相关资源
    最近更新 更多