Приведенный ниже код вызывает предупреждение анализа кода CA2000, в котором утверждается, что мне нужно избавиться от getRequest
по всем путям кода, прежде чем он выйдет из области видимости.Незначительная настройка кода, например удаление when
из catch
, устраняет предупреждение.
try
{
using (var getRequest = new HttpRequestMessage(HttpMethod.Get, uri))
{
using (var result = client.SendAsync(getRequest).Result)
{
}
}
}
catch (AggregateException exc) when (exc.InnerExceptions.Count >= 0)
{
}
На каком пути кода утилизируется, не вызывается, и почему перехват / когда влияет на вещи?
Примечание. Я использую встроенный в VS2015 анализ кода.CA2000 входит в набор правил управляемого бинарного анализа и (для меня) по умолчанию не проверяется для новых решений.(VS2017 также выдает те же предупреждения)