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