Проверка на объекты, которые реализуют IDisposable, но не расположены должным образом - PullRequest
8 голосов
/ 08 апреля 2010

Есть ли способ автоматически проверять существующий исходный код C # на наличие экземпляров объектов, которые должным образом не утилизируются, т.е. используя try / catch / finally или используя операторы? Или мне нужно просто вручную посмотреть код?

Ответы [ 3 ]

3 голосов
/ 08 апреля 2010

Взгляните на FxCop для VS2010 - я думаю, что они восстановили правило DisposeObjectsBeforeLeavingScope - которое может делать именно то, что вы хотите.

1 голос
/ 08 апреля 2010

НТН

0 голосов
/ 09 апреля 2010

CodeRush имеет некоторую поддержку определения очевидных вариантов этого. Другой возможный вариант - (возможно, с помощью дополнительного символа компиляции) добавить финализатор к вашим собственным IDisposable объектам и громко жаловаться, если они завершаются без утилизации (установите флаг bool в Dispose). Но обратите внимание: наличие финализатора меняет поведение объектов, поэтому не оставляйте его в рабочем коде (или даже в ваших регулярных модульных тестах).

...