From f9df2fb29e5276c751a0cc6486e99e9d8dfcc156 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Mon, 25 Nov 2024 11:35:46 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20DI-Erweiterung=20f=C3=BCr=20HttpClient-?= =?UTF-8?q?Services=20verbessert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `AddHttpClientService` refaktoriert, um `AddHttpClientServiceDefaults` für gemeinsame Setup-Logik einzuführen. - Überladungen für `AddHttpClientService` hinzugefügt, um sowohl `IConfigurationSection` als auch direkte Options-Instanz zu unterstützen. - Bessere Erweiterbarkeit und sauberere Service-Konfiguration sichergestellt. --- DigitalData.Core.Client/DIExtensions.cs | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) 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; } }