我有一个简单的项目来尝试Mediatr问题。当我的API的SAME项目中的处理程序的具体类起作用时,它将起作用。但是,当我将该处理程序类带入另一个项目(并且API引用该项目的c)时,它不会解析注册表。
我收到此错误:
找不到针对MediatR.IRequestHandler`2 [MyBiz.GetTokenModelRequest,MyBiz.TokenModel]类型的请求的处理程序。在容器中注册您的处理程序。有关示例,请参见GitHub中的示例。
我在项目中有这个结构,并且还显示了它的工作原理和不工作的地方:
有关更多说明,请参见以下代码:
MyApi2-> Startup.cs:
namespace MyApi2
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddMediatR();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc();
}
}
}
Run Code Online (Sandbox Code Playgroud)
MyApi2-> ValuesController:
namespace MyApi2.Controllers
{
[Route("api/[controller]")]
public class ValuesController : Controller
{
private readonly IMediator _mediator;
public ValuesController(IMediator mediator)
{
_mediator = mediator;
}
[HttpGet]
public async …Run Code Online (Sandbox Code Playgroud)