refactor(ClientOptions): add AfterHttpInit-property and bind to dependency injection

This commit is contained in:
tekh 2025-08-15 10:52:39 +02:00
parent 3eacbd89f7
commit 32b631a6c2
2 changed files with 7 additions and 2 deletions

View File

@ -9,4 +9,6 @@ public class ClientOptions
public TimeSpan? Timeout { get; set; }
public Dictionary<string, string?>? QueryStrings { get; set; }
public Action<HttpClient>? AfterHttpInit { get; set; }
}

View File

@ -9,7 +9,7 @@ public static class DependencyInjection
{
internal static readonly string EConnectClientName = Guid.NewGuid().ToString();
internal static IServiceCollection ConfigureEConnectClient(this IServiceCollection services)
internal static IServiceCollection AddEConnectHttpClient(this IServiceCollection services)
{
services.AddHttpClient(EConnectClientName, (provider, client) => {
var opt = provider.GetRequiredService<IOptions<ClientOptions>>().Value;
@ -20,7 +20,10 @@ public static class DependencyInjection
if (opt.Timeout is TimeSpan timeout)
client.Timeout = timeout;
opt.AfterHttpInit?.Invoke(client);
});
return services;
}
@ -28,7 +31,7 @@ public static class DependencyInjection
{
Config config = new(services);
options?.Invoke(config);
services.ConfigureEConnectClient();
services.AddEConnectHttpClient();
services.AddScoped(typeof(IEConnectClient<>), typeof(EConnectClient<>));
return services;
}