是否有一種簡單的方法可以查看正在運行的.Net應用程序,到目前爲止加載的所有類?這將有助於刪除不再在大型項目中使用的類。如何查看在.Net中加載了哪些類
我知道我可以在每個類中放置靜態初始化器,並讓它們進行某種註冊,但這很乏味且容易出錯。如果通過AppDomain或Assembly類或其他方法有更清晰的方法,那將會很棒。謝謝!
是否有一種簡單的方法可以查看正在運行的.Net應用程序,到目前爲止加載的所有類?這將有助於刪除不再在大型項目中使用的類。如何查看在.Net中加載了哪些類
我知道我可以在每個類中放置靜態初始化器,並讓它們進行某種註冊,但這很乏味且容易出錯。如果通過AppDomain或Assembly類或其他方法有更清晰的方法,那將會很棒。謝謝!
你可以很容易找到哪個大會真的很容易 - AppDomain.CurrentDomain.GetAssemblies()
。當然,它只會在執行此操作時向您提供有關在特定時間加載的程序集的信息。找到並清除解決方案中冗餘代碼的方法有很多。就我個人而言,我喜歡ReSharper。它具有稱爲「查找代碼問題」(可用於整個解決方案)的很大功能,它將爲您提供未使用符號的列表,這正是您要查找的內容。
您可以使用PostSharp,Spring.Aop等方面庫截取對方法,屬性等的所有調用,並將類型名稱添加到集合中。另一種方法是使用分析器。這兩種方法,不幸的是需要你繼續使用應用程序(希望它是一個帶UI的桌面應用程序)。
順便問一下,您是否嘗試啓用CodeAnalysis並查找性能警告?您將收到所有方法,屬性,永遠不會被調用的字段的警告。
由於可能存在引用類的端點(例如,網頁或RESTful API調用),但該端點從不再使用,因此ReSharper不足。所以這個類在編譯時被引用,但從未在實踐中使用過。 – nganju