Files
Leanetec.EConnect/src/Leanetec.EConnect.Infrastructure/DependencyInjection.cs
Developer 02 4256a79122 feat(infrastructure): add extension methods for configuring and registering HttpClient
- Implemented ConfigureHttpClient extension for IServiceCollection with dynamic client name
- Added AddInfrastructureServices method to simplify HttpClient registration via configurable options
- Introduced sealed Config class for flexible client configuration
2025-08-12 18:41:07 +02:00

35 lines
1011 B
C#

using Microsoft.Extensions.DependencyInjection;
namespace Leanetec.EConnect.Infrastructure;
public static class DependencyInjection
{
internal static readonly string HttpClientName = Guid.NewGuid().ToString();
internal static IServiceCollection ConfigureHttpClient(this IServiceCollection services, Action<HttpClient> configureClient)
{
services.AddHttpClient(HttpClientName, configureClient);
return services;
}
public static IServiceCollection AddInfrastructureServices(this IServiceCollection services, Action<Config> options)
{
Config config = new(services);
options.Invoke(config);
services.ConfigureHttpClient(config.Client);
return services;
}
public sealed class Config
{
private readonly IServiceCollection _services;
internal Config(IServiceCollection services)
{
_services = services;
}
public Action<HttpClient> Client { get; set; } = _ => { };
}
}