diff --git a/src/Cnblogs.Architecture.Ddd.Cqrs.DependencyInjection/ServiceCollectionInjector.cs b/src/Cnblogs.Architecture.Ddd.Cqrs.DependencyInjection/ServiceCollectionInjector.cs
index 64b92af..a10a230 100644
--- a/src/Cnblogs.Architecture.Ddd.Cqrs.DependencyInjection/ServiceCollectionInjector.cs
+++ b/src/Cnblogs.Architecture.Ddd.Cqrs.DependencyInjection/ServiceCollectionInjector.cs
@@ -1,4 +1,4 @@
-using System.Reflection;
+using System.Reflection;
using Cnblogs.Architecture.Ddd.Cqrs.Abstractions;
using Cnblogs.Architecture.Ddd.Cqrs.DependencyInjection;
using MediatR;
@@ -18,6 +18,21 @@ public static class ServiceCollectionInjector
/// 命令/查询所在的程序集。
///
public static CqrsInjector AddCqrs(this IServiceCollection services, params Assembly[] assemblies)
+ {
+ return services.AddCqrs(null, assemblies);
+ }
+
+ ///
+ /// 添加 Cqrs 支持。
+ ///
+ /// 。
+ /// The action used to configure the MediatRServiceConfiguration.
+ /// 命令/查询所在的程序集。
+ ///
+ public static CqrsInjector AddCqrs(
+ this IServiceCollection services,
+ Action? configuration,
+ params Assembly[] assemblies)
{
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(ValidationBehavior<,>));
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(LoggingBehavior<,>));
@@ -27,7 +42,12 @@ public static CqrsInjector AddCqrs(this IServiceCollection services, params Asse
assemblies = [typeof(CqrsInjector).Assembly];
}
- services.AddMediatR(cfg => cfg.RegisterServicesFromAssemblies(assemblies));
+ services.AddMediatR(cfg =>
+ {
+ cfg.RegisterServicesFromAssemblies(assemblies);
+ configuration?.Invoke(cfg);
+ });
+
return new CqrsInjector(services);
}
}