Изменения жизненного цикла объекта между .NET 4.7 и 4.8 версий System.net.httpC#

Место общения программистов C#
Ответить
Anonymous
 Изменения жизненного цикла объекта между .NET 4.7 и 4.8 версий System.net.http

Сообщение Anonymous »

Я работаю над обновлением очень большого устаревшего решения с .NET 4.7 до .NET 4.8. Это не было проблемой в целом, но теперь все проекты обновляются, у меня есть один провал модульного теста, который дает мне повод для беспокойства. Код не изменился - только фреймворные версии.

Код: Выделить всё

var httpRequestMessage = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri($"{this.options.Value.OurInternalObjectProperty}{this.licenseKey}&Content-Type=application-JSON"),
Headers =
{
{ HttpRequestHeader.Accept.ToString(), "application/json" },
{ "token", this.licenseKey },
{ "projectName", this.options.Value.OurInternalObjectProperty }
},
Content = new StringContent(JsonConvert.SerializeObject(ourObjectParameter))
};

using (var response = await this.httpClient.SendAsync(httpRequestMessage))
{
if (response.IsSuccessStatusCode)
{
var result = await this.DeserialiseObject(response);
return Task.FromResult(result).Result;
}
else
{
var requestHeaders = $"token: {this.licenseKey}, projectName: {this.options.Value.OurInternalObjectProperty }";
var requestBody = await httpRequestMessage.Content.ReadAsStringAsync();
var responseBody = await response.Content.ReadAsStringAsync();
this.logger.LogWarning(message: $"Our error message");
throw new OurCustomExceptionClass(responseBody, (int)response.StatusCode);
}
}
Тест модуля, который не удается, издевается над httpresponseobject, чтобы вернуть 404, и проверяет, что метод бросает исключение типа OurCustomexceptionClass .
Что меня беспокоит, так это то, что вместо этого исключения код теперь бросает систему. httprequestmessage.content.ReadAssTringAsync () . Полное сообщение об ошибке: < /p>

'не может получить доступ к утилизируемому объекту. Имя объекта: 'System.net.http.StringContent'. '< /P>
< /blockquote>
Так что я обеспокоен тем, как было изменение в том, как ручка System.net.http и сохраняет запросы между 4,7 и 4.8, которые могут быть эффективными при активном использовании. Это то, о чем мне нужно беспокоиться для живого использования, или я могу просто исправить тест и двигаться дальше?


Подробнее здесь: https://stackoverflow.com/questions/794 ... m-net-http
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»