Usunąć wstrzyknięty HttpClient
Nasza aplikacja MVC wywołuje akcję WebAPI za pomocą HttpClient. Zdecydowałem się wstrzyknąć HttpClient za pomocą StructureMap i nadpisać dyspozycję w kontrolerze
public HomeController(HttpClient httpClient)
{
_httpClient = httpClient;
}
protected override void Dispose(bool disposing)
{
if (disposing && _httpClient != null)
{
_httpClient.Dispose();
}
base.Dispose(disposing);
}
Obiekt StructureMap ObjectInitialize w zasadzie wygląda tak:
x.For<HttpClient>().Use(() => new HttpClient() { BaseAddress = "my/uri/"});
Kiedy to tworzę, CodeAnalysis narzeka"Dispose objects before losing scope"
i wskazuje kod IoC.
Czy mogę to pominąć lub gdzie muszę pozbyć się HttpClient? Próbowałem też
protected void Application_EndRequest(object sender, EventArgs e)
{
ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects();
}
Ale nadal mam naruszenie zasad.