using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Core.Core; namespace WIDESEA_Core.Extensions { public static class AllOptionRegister { /// /// 注册所有实现了 IConfigurableOptions 接口的可配置选项 /// /// 服务集合 /// 当 services 为 null 时抛出 public static void AddAllOptionRegister(this IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); foreach (var optionType in App.EffectiveTypes.Where(s => !s.IsInterface && typeof(IConfigurableOptions).IsAssignableFrom(s))) { services.AddConfigurableOptions(optionType); } } } }