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);
}
}
}
}