Czy istnieje sposób automatycznego sprawdzenia istniejącego kodu źródłowego C# pod kątem obiektów, które nie są odpowiednio utylizowane, tj. używając try/catch/finally lub używając instrukcji? Czy muszę po prostu ręcznie sprawdzić kod?Sprawdzanie, czy obiekty implementują IDisposable, ale nie są prawidłowo ułożone
Odpowiedz
Spójrz na FxCop dla VS2010 - Wierzę, że przywrócono regułę DisposeObjectsBeforeLeavingScope - która może zrobić dokładnie to, co chcesz.
Zastosowanie FX Cop dla reguły, by sprawdzić, czy IDisposable są umieszczone w odpowiednim bloku Using ...
Można użyć reflektor, aby przejść przez obiekt z IDisposable
sygn. : Is there a list of common object that implement IDisposable for the using statement? dodatkowego pomysłu
HTH
CodeRush ma pewne wsparcie dla dostrzegania oczywistych wariantów tego. Inną możliwą opcją jest (być może za pomocą opcjonalnego symbolu kompilacji) dodanie finalizatora do własnych obiektów IDisposable
i głośno narzekać, jeśli zostaną sfinalizowane bez ich usunięcia (ustaw flagę bool w Dispose
). Ale uwaga: posiadanie finalizatora zmienia zachowanie obiektów, więc nie zostawiaj go w kodzie produkcyjnym (lub nawet w regularnych testach jednostkowych).
- 1. ehcache - czy obiekty są wieczne lub nie
- 2. Czy istnieje lista wspólnych obiektów, które implementują IDisposable dla instrukcji using?
- 3. Czy są jakieś języki, które implementują generics _well_?
- 4. IDisposable chain
- 5. Sprawdzanie sumy, czy pewne warunki są spełnione
- 6. Highcharts - Ukryte wykresy nie są prawidłowo zmieniane
- 7. jqplot Ułożone obok siebie ułożone wykres słupkowy
- 8. Animacje jQuery nie są prawidłowo obsługiwane
- 9. Dlaczego wątek nie implementuje IDisposable?
- 10. Moje elementy sterowania nie są prawidłowo utylizowane?
- 11. Podstrony nie są prawidłowo pozycjonowane podczas animacji
- 12. Czy niezmienne obiekty są dobrą praktyką?
- 13. Czy/regex/Literals zawsze są obiekty RegExp?
- 14. Sprawdzanie, czy dwie liczby są wzajemnie permutacyjne?
- 15. Dynamiczne obiekty w WCF nie są możliwe?
- 16. Sprawdzanie, czy wszystkie zmienne POST są ustawione
- 17. Obiekty nie są ważne jako React child
- 18. SSRS - Sprawdzanie, czy dane są zerowe
- 19. Sprawdzanie, czy dwa ciągi są prawie podobne
- 20. ClientBase nie implementuje IDisposable member
- 21. interfejs Autofac i IDisposable
- 22. Sprawdź, czy klasy Java implementują toString()
- 23. Czy System.Runtime.Caching.MemoryCache zutylizuje elementy IDisposable po eksmisji?
- 24. Wiosna danych MongoDB Repozytoria nie implementują dziedziczenie poprawnie
- 25. Kiedy są tworzone obiekty atrybutów?
- 26. Czy są jakieś powszechnie stosowane implementacje IQueryable?
- 27. Jak prawidłowo ustawić obiekty wokół okręgu na UIView
- 28. Jak dictowe obiekty są marynowane?
- 29. Kiedy inicjalizowane są obiekty pakietu?
- 30. uprawnienia do plików mkfifo nie są wykonywane prawidłowo
Pobrałem wersję próbną VS2010 Premium i rzeczywiście ma ona tę regułę CA2000. Dzięki. – etoisarobot