Descarte do HttpClient injetado
Nosso aplicativo MVC chama uma ação WebAPI usando o HttpClient. Eu decidi injetar o HttpClient usando StructureMap e substituir o descarte no controlador
public HomeController(HttpClient httpClient)
{
_httpClient = httpClient;
}
protected override void Dispose(bool disposing)
{
if (disposing && _httpClient != null)
{
_httpClient.Dispose();
}
base.Dispose(disposing);
}
O StructureMap ObjectInitialize basicamente se parece com isso ..
x.For<HttpClient>().Use(() => new HttpClient() { BaseAddress = "my/uri/"});
Quando eu construo isso, CodeAnalysis reclama"Dispose objects before losing scope"
e aponta para o código IoC.
Eu posso suprimir isso, ou onde eu preciso descartar o HttpClient? Eu também tentei
protected void Application_EndRequest(object sender, EventArgs e)
{
ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects();
}
Mas ainda recebo essa violação de regra.