如何在 ASP.NET Core 中手动注册 Mediatr 处理程序?

gro*_*kky 8 c# mediatr asp.net-core

我正在使用 ASP.NET Core,带有内置容器。

自动注册应该像这样完成:

services.AddMvc();
services.AddMediatR(typeof(Startup));
Run Code Online (Sandbox Code Playgroud)

这会自动 1) 配置 MediatR,2) 注册程序集中找到的所有处理程序。

但我想手动注册我的处理程序。我怎么做?

Svm*_*rvj 10

今天我遇到了同样的问题,而不是使用扩展来扫描程序集并自动添加所有处理程序。我们需要手动注册它。

这是应该如何注册的工作示例:

var serviceConfig = new MediatRServiceConfiguration();
ServiceRegistrar.AddRequiredServices(services, serviceConfig);
services.AddScoped<IRequestHandler<MyCommand, MyCommandResponse>, MyCommandHandler>();
Run Code Online (Sandbox Code Playgroud)

MediarRServiceConfiguration来自哪里Microsoft.Extensions.DependencyInjectionServiceRegistrar来自哪里MediatR.Registration


Dan*_*ann 2

services.AddTransient<IRequestHandler<MyRequestModel, MyResponseModel>, MyHandler>();
Run Code Online (Sandbox Code Playgroud)