Qual è la procedura migliore per chiamare Dispose (o meno) su HttpRequestMessage e HttpResponseMessage con asp.net core?Non chiamare Dispose su HttpRequestMessage e HttpResponseMessage in asp.net core
Esempi:
protected override async Task<AuthenticationTicket> CreateTicketAsync(ClaimsIdentity identity, AuthenticationProperties properties, OAuthTokenResponse tokens)
{
// Get the Google user
var request = new HttpRequestMessage(HttpMethod.Get, Options.UserInformationEndpoint);
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", tokens.AccessToken);
var response = await Backchannel.SendAsync(request, Context.RequestAborted);
response.EnsureSuccessStatusCode();
var payload = JObject.Parse(await response.Content.ReadAsStringAsync());
...
}
e https://github.com/aspnet/Security/blob/1.0.0/src/Microsoft.AspNetCore.Authentication.Facebook/FacebookHandler.cs#L37-L40
Entrambi gli esempi non sono chiamando Dispose
Potrebbe essere questa un'omissione? o c'è una ragione valida dietro di esso, forse perché il metodo è asincrono?
Modifica 1: ovviamente il CG finirà per finalizzarli, ma è questa la migliore pratica per farlo in questa circostanza e perché?
Edit 2: gli esempi sopra riportati sono parte di componenti fondamentali asp.net middleware
verrà smaltito una volta fuori dal campo di applicazione e non in uso (asincrono). –
Naturalmente il CG finirà per finalizzarli, ma è questa la migliore pratica per farlo in questa circostanza e perché? – PaulMiami
Se la chiamata viene chiamata prima del termine del metodo asincrono, verranno generate eccezioni. –