Почему перехват AggregateException вызывает предупреждение CA2000?
Код ниже вызывает предупреждение анализа кода 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)
{
}
На какой путь кода удаляется, не вызывается, и почему catch/when влияет на вещи?
Примечание: я использую встроенный анализ кода VS2015. CA2000 входит в набор правил управляемого бинарного анализа и (для меня) по умолчанию не проверяется для новых решений. (VS2017 также выдает те же предупреждения)