Третий день гоняюсь за багом, связанным толи с утечкой ресурсов, толи памяти. Попутно наткнулся на одно место в клиентской части приложения, которое создаёт объект типа Stream и не освобождает его через Dispose:
using (new OperationContextScope((IClientChannel)service))
{
Stream tempStream = service.GetChunkedImageStream(imageUID, compress, quality);
{
WriteStreamToFile(file, tempStream);
}
}
tempStream надо бы тоже обернуть в using. Но что меня смутило — почему встроенный статический анализ ничего не сказал про это? В настройках проекта стоит анализ с набором правил "Microsoft Managed Recommended Rules" и никаких ворнингов на этой строке оно не показывает.
Умеет ли вообще встроенный анализатор ловить такое? Вроде не сложная вещь.