diff --git a/DigitalData.Core.Client/DIExtensions.cs b/DigitalData.Core.Client/DIExtensions.cs index f44ea61..b4e104d 100644 --- a/DigitalData.Core.Client/DIExtensions.cs +++ b/DigitalData.Core.Client/DIExtensions.cs @@ -2,21 +2,35 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Options; using System.Net; namespace DigitalData.Core.Client { public static class DIExtensions { - public static IServiceCollection AddHttpClientService(this IServiceCollection services, IConfigurationSection? section = null) - where THttpClientOptions : class, IHttpClientOptions + internal static IServiceCollection AddHttpClientServiceDefaults(this IServiceCollection services) { services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); - if(section is not null) - services.Configure(section); + return services; + } + public static IServiceCollection AddHttpClientService(this IServiceCollection services, IConfigurationSection section) + where THttpClientOptions : class, IHttpClientOptions + { + services.AddHttpClientServiceDefaults(); + services.TryAddSingleton, HttpClientService>(); + return services.Configure(section); + } + + public static IServiceCollection AddHttpClientService(this IServiceCollection services, THttpClientOptions options) + where THttpClientOptions : class, IHttpClientOptions + { + services.AddHttpClientServiceDefaults(); + services.TryAddSingleton, HttpClientService>(); + services.TryAddSingleton(Options.Create(options)); return services; } }