Я использую расширение AddHttpClient
для настройки HttpClient
, которое используется в моем личном RestClient
.
public class RestClient : IRestClient
{
public RestClient(IRestClientSettings settings, HttpClient httpClient)
{
...
}
}
public class RestClientFactory
{
public IRestClient Create(IRestClientSettings settings)
{
// how to create IRestClient with above configuration??
}
}
public static IServiceCollection AddServices(this IServiceCollection services)
{
services.AddHttpClient<IRestClient, RestClient>((provider, client) =>
{
// problem, this is always same binded instance,
// not the one provided in RestClientFactory
var settings = provider.GetService<IRestClientSettings>();
settings.ConfigureHttp(provider, client);
});
}
Все нормально, если я ввожу IRestClient
в свои службы, но проблема заключается в том, когдаЯ хочу динамически создать IRestClient
с использованием RestClientFactory
для использования пользовательской конфигурации (не той, которая предусмотрена привязкой DI по умолчанию для IRestClientSettings).Как этого добиться?
IRestClientSettings - это просто пользовательские настройки вместе с методом ConfigureHttp, где пользователь может определять пользовательские настройки HttpClient.