| File: NamedValidateOptionsFilter.cs | Web Access |
| Project: src\runtime\src\libraries\Microsoft.Extensions.Options\src\Microsoft.Extensions.Options.csproj (Microsoft.Extensions.Options) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; namespace Microsoft.Extensions.Options { internal sealed class NamedValidateOptionsFilter<TOptions, TInner> : IValidateOptions<TOptions> where TOptions : class where TInner : IValidateOptions<TOptions> { private readonly string _name; private readonly TInner _inner; internal NamedValidateOptionsFilter(string name, TInner inner) { ArgumentNullException.ThrowIfNull(inner); _name = name; _inner = inner; } public ValidateOptionsResult Validate(string? name, TOptions options) { if (name is null || name == _name) { return _inner.Validate(name, options); } // ignored if not validating this instance return ValidateOptionsResult.Skip; } } }