在ASP.NET Core中,我如何手动注册Mediatr handlers?

8

我正在使用内置容器的ASP.NET Core。

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

services.AddMvc();
services.AddMediatR(typeof(Startup));

这会自动化地配置MediatR,并且在程序集中找到所有的处理程序进行注册。

但是我想手动注册我的处理程序。我该如何做?

2个回答

10

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

这里有一个有效的示例,展示了如何手动注册:

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

MediarRServiceConfiguration来自于Microsoft.Extensions.DependencyInjection,而ServiceRegistrar则是来自于MediatR.Registration


2
services.AddTransient<IRequestHandler<MyRequestModel, MyResponseModel>, MyHandler>();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接