簡體   English   中英

如何從C#類方法中找到調用哪些方法 - 而不是在運行時

[英]How do I find what methods are called from a C# class method - NOT at run time

我有一個C#類,代碼太多了,我想refactor它。 我想要做的是從所有public methods ,並為每個public methods構建一個tree ,顯示從中調用類中的其他方法,然后從子類中調用哪些方法,依此類推。

這將使我能夠看到哪些private methods僅屬於一個public method ,這些public method是共享的,等等。

請注意,我不想在運行時執行此操作,我希望能夠直接在.cs file查看類,或者在編譯的DLL上使用反射。

我知道我可以在編譯的DLL上使用反射來獲取方法,但我找不到任何方法來找出類中其他方法調用的方法。

任何想法? 同樣,這不是運行時問題,它純粹是為了構建一個可重用的實用程序來幫助重構超大類。 在我正在研究的解決方案中有很多,所以代碼可以反復使用。

Visual Studio 2010具有“查看調用層次結構”操作,您可以在其中查看解決方案中調用代碼的所有位置。

根據我的經驗,這種靜態分析可能有點缺乏,例如可以使用Reflection,數據綁定,依賴注入容器等動態​​調用方法。

此外,這可能有點偏離主題,並不適用於您的情況,但我發現找到組件的死代碼的好方法是有一套集成測試。 然后,您可以運行代碼覆蓋,並直觀地查看從不執行的代碼路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM