Asp.net core 使用MediatR注册构造函数依赖项的Lamar,有更好的方法吗?
我正在使用Lamar,并且我添加了大量在控制器中工作的依赖项 当我尝试使用MediarR中的处理程序时,我必须显式地设置Ctor依赖项,如下所示:Asp.net core 使用MediatR注册构造函数依赖项的Lamar,有更好的方法吗?,asp.net-core,dependency-injection,mediatr,lamar,Asp.net Core,Dependency Injection,Mediatr,Lamar,我正在使用Lamar,并且我添加了大量在控制器中工作的依赖项 当我尝试使用MediarR中的处理程序时,我必须显式地设置Ctor依赖项,如下所示: serviceRegistry .ForConcreteType<UpdateStockItemPricingHandler>().Configure .Scoped() .Ctor<ClientAppContext>("dbContext&qu
serviceRegistry
.ForConcreteType<UpdateStockItemPricingHandler>().Configure
.Scoped()
.Ctor<ClientAppContext>("dbContext").Is<ClientAppContext>();
您使用的是什么版本的Lamar?@mx2.0.0
serviceRegistry.Scan(scanner =>
{
scanner.AssemblyContainingType<Ping>();
scanner.ConnectImplementationsToTypesClosing(typeof(IRequestHandler<,>));
scanner.ConnectImplementationsToTypesClosing(typeof(INotificationHandler<>));
scanner.ConnectImplementationsToTypesClosing(typeof(IRequestExceptionAction<>));
scanner.ConnectImplementationsToTypesClosing(typeof(IRequestExceptionHandler<,,>));
});
serviceRegistry.For<MediatR.IMediator>().Use<Mediator>().Transient();
serviceRegistry.For<ServiceFactory>().Use(ctx => ctx.GetInstance);
serviceRegistry
.ForConcreteType<ServiceHealthCheckHandler>().Configure
.Scoped()
.Ctor<IService>("environmentService").Is<EnvironmentService>()
.Transient();
serviceRegistry
.ForConcreteType<GetStockItemPricingHandler>().Configure
.Scoped()
.Ctor<ClientAppContext>("dbContext").Is<ClientAppContext>();
serviceRegistry
.ForConcreteType<UpdateStockItemPricingHandler>().Configure
.Scoped()
.Ctor<ClientAppContext>("dbContext").Is<ClientAppContext>();
var mapperConfig = new MapperConfiguration(mc => mc.AddProfile(new MappingProfile()));
IMapper mapper = mapperConfig.CreateMapper();
services.AddSingleton(mapper);