Pipelines

This commit is contained in:
Dan Clark
2024-11-25 09:44:12 +00:00
parent 93e2be4eb0
commit d1ee8add0c
9 changed files with 197 additions and 36 deletions
@@ -124,7 +124,7 @@ public static class IServiceCollectionExtensions
where THandler : class, IHandler<TMessage>
where TMessage : class
{
if (key is { Length: > 0})
if (key is { Length: > 0 })
{
services.Add(new ServiceDescriptor(typeof(IHandler<TMessage>), key, typeof(THandler), lifetime));
services.AddInitialization<HandlerKeyedInitialization<TMessage, IHandler<TMessage>>>(key);
@@ -158,7 +158,7 @@ public static class IServiceCollectionExtensions
return services;
}
public static IServiceCollection AddInitialization<TInitialization>(this IServiceCollection services,
public static IServiceCollection AddInitialization<TInitialization>(this IServiceCollection services,
params object[] parameters)
where TInitialization : class,
IInitialization
@@ -167,6 +167,22 @@ public static class IServiceCollectionExtensions
return services;
}
public static IServiceCollection AddAsyncPipelineBehavior<TMessage, TResponse, TBehavior>(this IServiceCollection services)
where TBehavior : class,
IAsyncPipelineBehavior<TMessage, TResponse>
{
services.AddTransient<IAsyncPipelineBehavior<TMessage, TResponse>, TBehavior>();
return services;
}
public static IServiceCollection AddPipelineBehavior<TMessage, TResponse, TBehavior>(this IServiceCollection services)
where TBehavior : class,
IPipelineBehavior<TMessage, TResponse>
{
services.AddTransient<IPipelineBehavior<TMessage, TResponse>, TBehavior>();
return services;
}
public static IServiceCollection AddRange(this IServiceCollection services,
IServiceCollection fromServices)
{