Files
git.stella-ops.org/src/Scanner/__Libraries/StellaOps.Scanner.Surface.Validation/SurfaceValidationBuilder.cs
2026-02-01 21:37:40 +02:00

35 lines
847 B
C#

using Microsoft.Extensions.DependencyInjection;
using System;
namespace StellaOps.Scanner.Surface.Validation;
public sealed class SurfaceValidationBuilder
{
private readonly IServiceCollection _services;
internal SurfaceValidationBuilder(IServiceCollection services)
{
_services = services;
}
public SurfaceValidationBuilder AddValidator<TValidator>()
where TValidator : class, ISurfaceValidator
{
_services.AddSingleton<ISurfaceValidator, TValidator>();
return this;
}
public SurfaceValidationBuilder AddValidator(Func<IServiceProvider, ISurfaceValidator> factory)
{
if (factory is null)
{
throw new ArgumentNullException(nameof(factory));
}
_services.AddSingleton(provider => factory(provider));
return this;
}
}