По мнению Microsoft, лучшая практика для HttpClient - поддерживать одноэлементную версию HttpClient (перефразируя, но это результат. Не выбрасывайте ее немедленно). Мое собственное тестирование показало, что у одного экземпляра есть определенные преимущества при выполнении масштабных операций Http по сравнению с воссозданием HttpClient для каждого сообщения. Поэтому, естественно, имеет смысл поместить HttpClient в контейнер DI.
// Initialize the HTTP client.
HttpClient httpClient = new HttpClient();
httpClient.Timeout = Timeout.Infinite;
httpClient.BaseAddress = new Uri("https://localhost");
serviceCollection.AddSingleton(httpClient);
Проблема в том, что я получаю предупреждения от StyleCop: CA2000: Удалите объекты перед потерей области действия. Очевидно, что я могу подавить, но это беспокоит меня, потому что есть другие IDisposable объекты, которые, возможно, захотят поместить в контейнер DI. Действительно ли это предупреждение при использовании шаблона DI? Есть ли какие-нибудь хитрости с этим?