using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Options; namespace NCC.ConfigurableOptions { /// /// 应用选项依赖接口 /// public partial interface IConfigurableOptions { } /// /// 选项后期配置 /// /// public partial interface IConfigurableOptions : IConfigurableOptions where TOptions : class, IConfigurableOptions { /// /// 选项后期配置 /// /// /// void PostConfigure(TOptions options, IConfiguration configuration); } /// /// 带验证的应用选项依赖接口 /// /// /// public partial interface IConfigurableOptions : IConfigurableOptions where TOptions : class, IConfigurableOptions where TOptionsValidation : class, IValidateOptions { } /// /// 带监听的应用选项依赖接口 /// /// public partial interface IConfigurableOptionsListener : IConfigurableOptions where TOptions : class, IConfigurableOptions { /// /// 监听 /// /// /// void OnListener(TOptions options, IConfiguration configuration); } }