Утилизировать введенный HttpClient
Наше приложение MVC вызывает действие WebAPI, используя HttpClient. Я решил добавить HttpClient с помощью StructureMap и переопределить dispose в контроллере.
public HomeController(HttpClient httpClient)
{
_httpClient = httpClient;
}
protected override void Dispose(bool disposing)
{
if (disposing && _httpClient != null)
{
_httpClient.Dispose();
}
base.Dispose(disposing);
}
StructureMap ObjectInitialize в основном выглядит следующим образом.
x.For<HttpClient>().Use(() => new HttpClient() { BaseAddress = "my/uri/"});
Когда я строю это, CodeAnalysis жалуется"Dispose objects before losing scope"
и указывает на код IoC.
Могу ли я подавить это, или где мне нужно избавиться от HttpClient? Я тоже пробовал
protected void Application_EndRequest(object sender, EventArgs e)
{
ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects();
}
Но я все еще получаю это нарушение правил.