[英]Identify IDisposable objects
我必須檢查一些其他人有一些內存泄漏的代碼。 現在我正在搜索一次性對象以使用using語句對它們進行包圍,我想知道是否有一種快速方式告訴你所有聲明的一次性對象。我的意思是像resharper或另一個visual studio插件。
謝謝。
我明白你的意思。 我不知道,但看看FxCop。 它可能在某處有一個規則,用於檢查是否未處理實現IDisposable的對象。 只是預感,介意。
更新 : Mitch Wheat寫道:
FxCop包含規則,那就是說從實現IDisposable的類型派生的所有類型都應該實現Dispose()模式
謝謝,米奇。
你可以用ReSharper做到這一點。 使用ReSharper,您可以使用Alt-End輕松導航任何界面的實現,但對於像IDisposable
這樣的流行界面,這是不切實際的。
這是你可以做的:
System.IDisposable
IDisposable
的所有類型(您的解決方案)的列表。 那些粗體是你想要的 - 他們直接實現IDisposable
。 希望有所幫助。
FxCop中的使用規則CA2213(DisposableFieldsShouldBeDisposed)和CA2215(DisposeMethodsShouldCallBaseClassDispose)將捕獲在您自己的類中未正確調用dispose的位置,但我不相信有任何東西可以檢查dispose總是被調用雖然具有諷刺意味的是有規則( CA2202)用於DoNotDisposeObjectsMultipleTimes
此外,根據您是否使用這樣的系統,如果您正在使用IoC容器,它可能會在服務通過接口返回給您之前經過多層代碼,並且在這樣的情況下處理IDisposable可能並不容易。一件事。
也許你解決的接口不是從IDisposable繼承的,但是使用的實際服務類呢? 怎么處理? 等等
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.