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