Skip to content

Commit d496a30

Browse files
authored
refactor: introduce MediatR configuration parameter to AddCqrs (#333)
1 parent a755ca0 commit d496a30

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

src/Cnblogs.Architecture.Ddd.Cqrs.DependencyInjection/ServiceCollectionInjector.cs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System.Reflection;
1+
using System.Reflection;
22
using Cnblogs.Architecture.Ddd.Cqrs.Abstractions;
33
using Cnblogs.Architecture.Ddd.Cqrs.DependencyInjection;
44
using MediatR;
@@ -18,6 +18,21 @@ public static class ServiceCollectionInjector
1818
/// <param name="assemblies">命令/查询所在的程序集。</param>
1919
/// <returns></returns>
2020
public static CqrsInjector AddCqrs(this IServiceCollection services, params Assembly[] assemblies)
21+
{
22+
return services.AddCqrs(null, assemblies);
23+
}
24+
25+
/// <summary>
26+
/// 添加 Cqrs 支持。
27+
/// </summary>
28+
/// <param name="services"><see cref="IServiceCollection" />。</param>
29+
/// <param name="configuration">The action used to configure the MediatRServiceConfiguration.</param>
30+
/// <param name="assemblies">命令/查询所在的程序集。</param>
31+
/// <returns></returns>
32+
public static CqrsInjector AddCqrs(
33+
this IServiceCollection services,
34+
Action<MediatRServiceConfiguration>? configuration,
35+
params Assembly[] assemblies)
2136
{
2237
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(ValidationBehavior<,>));
2338
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(LoggingBehavior<,>));
@@ -27,7 +42,12 @@ public static CqrsInjector AddCqrs(this IServiceCollection services, params Asse
2742
assemblies = [typeof(CqrsInjector).Assembly];
2843
}
2944

30-
services.AddMediatR(cfg => cfg.RegisterServicesFromAssemblies(assemblies));
45+
services.AddMediatR(cfg =>
46+
{
47+
cfg.RegisterServicesFromAssemblies(assemblies);
48+
configuration?.Invoke(cfg);
49+
});
50+
3151
return new CqrsInjector(services);
3252
}
3353
}

0 commit comments

Comments
 (0)