public DistributedId(IOptions <DistributedIdOptions> distributedIdOption, IServiceProvider serviceProvider) { _distributedIdOption = distributedIdOption.Value; _serviceProvider = serviceProvider; }
/// <summary> /// 注入分布式Id /// </summary> /// <param name="services">IServiceCollection</param> /// <param name="distributedIdOption"></param> /// <returns></returns> public static IServiceCollection AddDistributedId(this IServiceCollection services, DistributedIdOptions distributedIdOption) { services.AddOptions <DistributedIdOptions>().Configure(x => { x.GetType().GetProperties().ToList().ForEach(aProperty => { aProperty.SetValue(x, aProperty.GetValue(distributedIdOption)); }); }); return(services.AddSingleton <IDistributedId, DistributedId>()); }