我正在使用内置容器的ASP.NET Core。
自动注册应该像这样完成:
services.AddMvc();
services.AddMediatR(typeof(Startup));
这会自动化地配置MediatR,并且在程序集中找到所有的处理程序进行注册。
但是我想手动注册我的处理程序。我该如何做?
我正在使用内置容器的ASP.NET Core。
自动注册应该像这样完成:
services.AddMvc();
services.AddMediatR(typeof(Startup));
这会自动化地配置MediatR,并且在程序集中找到所有的处理程序进行注册。
但是我想手动注册我的处理程序。我该如何做?
今天我遇到了同样的问题,我们需要手动注册组件而不是使用扩展程序自动扫描所有处理程序并添加它们。
这里有一个有效的示例,展示了如何手动注册:
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>();