Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CA2202 & FileStream правильное освобождение 
:(
    Опции темы
wester
Дата 19.1.2011, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 4
Всего: 13



Доброго времени суток.
Сейчас запускал статический анализатор VS на своем проекте и один из ворнингов заставил задуматься.

Цитата

CA2202 : Microsoft.Usage : Объект "'fileStream'" можно удалять более одного раза в методе 'Page.DownloadTorrent(Uri, string)'. Чтобы избежать исключения System.ObjectDisposedException, следует вызывать метод "Dispose" для объекта только один раз.


посмотрел статью в msdn, пытался привести код в соответствии с образцом, но не получилось.
сорец
Код

FileStream fileStream = null;
            try
            {
                fileStream = new FileStream(
                    String.Format(cultureInfo, PatternFileName, pathToSave, topicId),
                    FileMode.Create,
                    FileAccess.Write,
                    FileShare.ReadWrite);

                // записываем файл на диск
                using (var streamWriter = new StreamWriter(fileStream, Encoding.GetEncoding(1251)))
                { 
                    streamWriter.Write(responseFromServer);
                    fileStream = null;
                }
            }
            finally
            {
                if (fileStream != null)
                {
                    fileStream.Dispose(); // CA2202
                }
            } 


Это сообщение отредактировал(а) wester - 28.1.2011, 18:51
PM MAIL   Вверх
cream
Дата 20.1.2011, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 23.7.2010

Репутация: нет
Всего: 1



Код

fileStream.Close();


Это сообщение отредактировал(а) cream - 20.1.2011, 21:22
PM MAIL   Вверх
wester
Дата 28.1.2011, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 4
Всего: 13



неа, не работает.
в теории когда вызывается Dispose для streamWriter , то в тот же момент должен освобождаться и fileStream, 
тем не менее предупреждение висит
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0501 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.