This commit is contained in:
StellaOps Bot
2025-12-14 23:20:14 +02:00
parent 3411e825cd
commit b058dbe031
356 changed files with 68310 additions and 1108 deletions

View File

@@ -0,0 +1,29 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
namespace StellaOps.DependencyInjection.Validation;
/// <summary>
/// A hosted service that validates options at application startup.
/// This ensures configuration errors are detected early rather than at first use.
/// </summary>
/// <typeparam name="TOptions">The options type to validate.</typeparam>
internal sealed class OptionsValidationHostedService<TOptions> : IHostedService
where TOptions : class
{
private readonly IOptions<TOptions> _options;
public OptionsValidationHostedService(IOptions<TOptions> options)
{
_options = options;
}
public Task StartAsync(CancellationToken cancellationToken)
{
// Accessing .Value triggers validation if IValidateOptions<TOptions> is registered
_ = _options.Value;
return Task.CompletedTask;
}
public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
}