我正在使用带有内置容器的 ASP.NET Core。
自动注册应该是这样完成的:
services.AddMvc();
services.AddMediatR(typeof(Startup));
这会自动 1) 配置 MediatR,以及 2) 注册在程序集中找到的所有处理程序。
但我想手动注册我的处理程序。我怎么做?
我正在使用带有内置容器的 ASP.NET Core。
自动注册应该是这样完成的:
services.AddMvc();
services.AddMediatR(typeof(Startup));
这会自动 1) 配置 MediatR,以及 2) 注册在程序集中找到的所有处理程序。
但我想手动注册我的处理程序。我怎么做?
今天我遇到了同样的问题,而不是使用扩展来扫描程序集并自动添加所有处理程序。我们需要手动注册。
这是应该如何注册的工作示例:
var serviceConfig = new MediatRServiceConfiguration();
ServiceRegistrar.AddRequiredServices(services, serviceConfig);
services.AddScoped<IRequestHandler<MyCommand, MyCommandResponse>, MyCommandHandler>();
从哪里来MediarRServiceConfiguration_ Microsoft.Extensions.DependencyInjection_ ServiceRegistrar_MediatR.Registration
services.AddTransient<IRequestHandler<MyRequestModel, MyResponseModel>, MyHandler>();