mirror of
https://github.com/meysamhadeli/booking-microservices.git
synced 2026-04-25 06:44:03 +08:00
30 lines
1.1 KiB
C#
30 lines
1.1 KiB
C#
using System.Reflection;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace BuildingBlocks.Caching;
|
|
|
|
public static class Extensions
|
|
{
|
|
public static IServiceCollection AddCachingRequest(this IServiceCollection services,
|
|
IList<Assembly> assembliesToScan, ServiceLifetime lifetime = ServiceLifetime.Transient)
|
|
{
|
|
// ICacheRequest discovery and registration
|
|
services.Scan(scan => scan
|
|
.FromAssemblies(assembliesToScan ?? AppDomain.CurrentDomain.GetAssemblies())
|
|
.AddClasses(classes => classes.AssignableTo(typeof(ICacheRequest)),
|
|
false)
|
|
.AsImplementedInterfaces()
|
|
.WithLifetime(lifetime));
|
|
|
|
// IInvalidateCacheRequest discovery and registration
|
|
services.Scan(scan => scan
|
|
.FromAssemblies(assembliesToScan ?? AppDomain.CurrentDomain.GetAssemblies())
|
|
.AddClasses(classes => classes.AssignableTo(typeof(IInvalidateCacheRequest)),
|
|
false)
|
|
.AsImplementedInterfaces()
|
|
.WithLifetime(lifetime));
|
|
|
|
return services;
|
|
}
|
|
}
|