Entsorgen Sie den injizierten HTTP-Client

Unsere MVC-Anwendung ruft mit HttpClient eine WebAPI-Aktion auf. Ich beschloss, den HttpClient mit StructureMap zu injizieren und im Controller zu entsorgen

public HomeController(HttpClient httpClient)
{
    _httpClient = httpClient;
}

protected override void Dispose(bool disposing)
{
   if (disposing && _httpClient != null)
   {
       _httpClient.Dispose();
   }
   base.Dispose(disposing);
}

Die StructureMap ObjectInitialize sieht im Grunde so aus.

x.For<HttpClient>().Use(() => new HttpClient() { BaseAddress = "my/uri/"});

Wenn ich das baue, beschwert sich CodeAnalysis"Dispose objects before losing scope"und zeigt auf den IoC-Code.

Kann ich das unterdrücken oder wo muss ich den HttpClient entsorgen? Ich habe es auch versucht

protected void Application_EndRequest(object sender, EventArgs e)
{
    ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects();
}

Aber ich bekomme immer noch diese Regelverletzung.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage