¿Hay alguna manera de verificar automáticamente el código fuente existente de C# para las instancias de objetos que no se desechan correctamente, es decir. usando try/catch/finally o using statements? ¿O necesito simplemente mirar el código manualmente?Comprobación de Objetos que implementan IDisposable pero que no están desechados correctamente
Respuesta
Eche un vistazo a FxCop para VS2010 - Creo que restauraron la regla DisposeObjectsBeforeLeavingScope, que puede hacer exactamente lo que usted desea.
Uso Cop FX para una regla para comprobar si IDisposable se colocan en un bloque Usando adecuada ...
Puede usar el reflector que pasar por el objeto con IDisposable
Ref. : Is there a list of common object that implement IDisposable for the using statement? para la idea adicional
HTH
CodeRush tiene algún soporte para detectar obvias variantes de esto. Otra posible opción es (quizás a través de un símbolo de compilación opcional) agregar un finalizador a sus propios objetos IDisposable
, y quejarse en voz alta si se finalizan sin ser eliminados (configure un indicador bool en el Dispose
). Pero tenga en cuenta que tener un finalizador cambia el comportamiento de los objetos, por lo tanto, no lo deje en el código de producción (ni siquiera en las pruebas de unidad habituales).
- 1. Sesión que contiene elementos que implementan IDisposable
- 2. Eliminación de los miembros que implementan IDisposable
- 3. ¿Cómo encontrar todas las clases que implementan IDisposable?
- 4. ¿Cómo administrar objetos IDisposable que se almacenan en caché?
- 5. Singleton con finalizador pero no IDisposable
- 6. DataGridView no muestra las propiedades de los objetos que implementan ICustomTypeDescriptor
- 7. Colección estándar para objetos IDisposable
- 8. ¿Es necesario anidar objetos con objetos IDisposable?
- 9. Mecanografía implícita de matrices que implementan interfaces
- 10. ¿Qué hacer con los servidores IObster desechados?
- 11. Usando LINQ con clases que implementan ICollection no genérico
- 12. ¿Mis controles no están siendo eliminados correctamente?
- 13. Buscando idiomas que no están completos Turing
- 14. argumento booleano que no pasa correctamente
- 15. Ninject OnePerRequestBehaviour parece que no funciona correctamente?
- 16. System.ServiceModel.ServiceHost implementa IDisposable pero siga no es pública
- 17. no puede importar módulos que están allí
- 18. ¿Cómo encuentro registros que no están unidos?
- 19. función genérica para manejar desechar objetos IDisposable
- 20. ¿Hay una lista de objetos comunes que implemente IDisposable para la instrucción using?
- 21. D operadores que no están en C++
- 22. Elaboración de una lista de objetos que implementan una interfaz común, con JaxB
- 23. ¿Cómo se puede pasar una Lista <objetos que implementan una interfaz> a un método?
- 24. Comprobando que exec() se ejecuta correctamente o no
- 25. obteniendo objetos de datos centrales que no están en un conjunto
- 26. Ejemplos simples pero convincentes de macros que ya no están en Clojure
- 27. Cómo inyectar dependencias en clases que implementan una interfaz?
- 28. MVC 3 AJAX de correos, una lista llena de objetos, pero los objetos propiedades están vacías
- 29. de control WPF que contiene un miembro de IDisposable
- 30. OCaml: Tipo Comprobación de objetos
He descargado la versión de prueba de VS2010 Premium y de hecho tiene esta regla CA2000. Gracias. – etoisarobot