我正在玩弄新的ASP.NET核心,目前正在创建一个我想从JavaScript前端调用的API。MediatR与ASP.NET核心DI
我想使用介体模式来减少耦合,并且我发现Jimmy Bogard的Library MediatR。
我的问题在于使用DI构建接线,我尝试过看examples,但看不到它如何绑定到启动类中的ConfigureServices方法。
有没有人有任何见解?
更新:我得到它的工作,从我ConfigureService方法:
services.AddScoped<SingleInstanceFactory>(p => t => p.GetRequiredService(t));
services.Scan(scan => scan
.FromAssembliesOf(typeof(IMediator), typeof(MyHandler.Handler))
.AddClasses()
.AsImplementedInterfaces());
https://github.com/jbogard/MediatR/blob/master/samples/MediatR.Examples.AspNetCore/Program.cs似乎相当对我来说很简单,但是对于程序集扫描,您需要此Scrutor软件包(ASP.NET Core的DI不带有程序集扫描,并且没有计划发布它) – Tseng
如何将它添加到ConfigureService方法? 'services.AddTransient(typeof(IMediator),BuildMediator()。GetType());' – Nyegaard
你不想以这种方式注册它,Transient意味着它将在每次解析依赖时被创建。 'services.AddScoped(p => t => p.GetRequiredService(t));'和'services.AddScoped (p => t => p.GetRequiredServices(t));'工厂方法(多)或请求(单个) –
Tseng