Попробуйте и получите в свои руки FXCop. Ознакомьтесь с правилом, касающимся сбоя вызова dispose для типов IDisposable.
Существуют две основные причины утечек памяти в .net, а именно неспособность вызвать IDisposable (это метод, который будет вызывать неуправляемые деструкторы для кода P / Invoke), а вторая не может освободить ссылки на объекты, что их не мусор собирать. Например, если вы храните объекты в списке, вы можете случайно сохранить ссылку на список и, следовательно, на объект, который все еще находится в памяти.