【问题标题】:Consume API layer service method from Projects Controller layer with Interface in Net Core MVC使用 Net Core MVC 中的接口从 Projects Controller 层使用 API 层服务方法
【发布时间】:2021-03-09 09:39:51
【问题描述】:

我尝试从“GetMenuService()”方法调用 API 层“MenuService.cs”到 Projects Controller 层。我的结构是这样的:

------API START------

-----Services
---MenuService.cs
   |
   GetMenuService()
                  {
               ... 
  . ...   some code 
                  }

------API END--------
------
------
-----
-------MyProject-----------
-----Controllers
---MyHomeController.cs
        var comingValue = _menuservice.GetMenuService();

但我有这个错误:

InvalidOperationException:尝试激活“MyProjectSolution.MyProject.Controllers.MyHomeController”时无法解析“MyProjectSolution.MODEL.ServiceContracts.IMenuService”类型的服务。

【问题讨论】:

  • DI容器不知道如何解析IMenuService(可能是因为没有注册)

标签: c# asp.net-mvc .net-core model-view-controller


【解决方案1】:

您可能需要在Startup.cs内部的ConfigureServices()方法中进行服务注册

例如:

services.AddScoped<IMenuService, MenuService>();

欲了解更多信息:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-5.0

【讨论】:

  • MenuService.cs 仅在 API 项目中,而不是在 MyProject 中。我应该像这样使用从 api 项目到 Myproject 的导入吗? “使用 MyProjectSolution.API.Services;”
猜你喜欢
  • 2011-05-04
  • 1970-01-01
  • 2015-04-25
  • 2014-09-11
  • 1970-01-01
  • 2010-10-16
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
相关资源
最近更新 更多