public static IStandaloneFeignBuilder AddFeignClients(FeignOptions options) { if (options == null) { options = new FeignOptions(); } if (options.Lifetime == FeignClientLifetime.Scoped) { throw new NotSupportedException(nameof(options.Lifetime) + " can not be FeignClientLifetime.Scoped!"); } StandaloneFeignBuilder feignBuilder = _standaloneFeignBuilder; feignBuilder.Options = options; if (options.Assemblies.Count == 0) { feignBuilder.AddFeignClients(Assembly.GetEntryAssembly(), options.Lifetime); } else { foreach (var assembly in options.Assemblies) { feignBuilder.AddFeignClients(assembly, options.Lifetime); } } feignBuilder.AddService(typeof(ILoggerFactory), typeof(DefaultLoggerFactory), FeignClientLifetime.Singleton); feignBuilder.AddService(typeof(ICacheProvider), typeof(DefaultCacheProvider), FeignClientLifetime.Singleton); feignBuilder.AddService <IFeignOptions>(options); return(feignBuilder); }
static FeignClients() { _standaloneFeignBuilder = new StandaloneFeignBuilder(); }