Является ли создание конкретного экземпляра HttpClient неправильным использованием внедрения зависимостей в .NET?C#

Место общения программистов C#
Ответить
Anonymous
 Является ли создание конкретного экземпляра HttpClient неправильным использованием внедрения зависимостей в .NET?

Сообщение Anonymous »

Я пытаюсь следовать лучшим практикам для создания слабосвязанного кода, но мне все еще необходимо более глубокое понимание внедрения зависимостей.
Поэтому мне было интересно, уважает ли этот код эту концепцию поскольку я все еще создаю экземпляр класса в свойствах. Здесь я говорю о HttpClient.
Может ли кто-нибудь сказать мне, хорошо ли я использую внедрение зависимостей? Или программирование на конкретном экземпляре HttpClient создает тесную связь?
Program.cs:
builder.Services.AddHttpClient("AuthService", client =>
{
client.BaseAddress = new Uri(builder.Configuration.GetValue("Address")!);
}).ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
{
ServerCertificateCustomValidationCallback = (_, _, _, _) => true,
AllowAutoRedirect = false,
UseCookies = true
});

Auth.cs
public class Auth(IHttpClientFactory httpClientFactory)
{
...
private HttpClient client = httpClientFactory.CreateClient("Auth");
...
public async Task GetStuff()
{
try
{
using var response = await client.GetAsync("www.example.com");

if (response.StatusCode == HttpStatusCode.OK)
return Result.Success(cachedLocation);
}
catch (HttpRequestException ex)
{
return Result.Failure($"HTTP request failed: {ex.Message}");
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... pendency-i
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»