有沒有辦法知道一個對象的C#方法是否被調用或不使用反射?有沒有辦法知道一個對象的C#方法是否被調用?
1
A
回答
0
0
如果你的問題是如何找出是否一個特定的方法永遠不會在任何情況下和任何輸入被調用,那麼反思就無法爲你做。
您需要工具來執行靜態程序分析,但這些並不完全是爲了在運行時使用。
如果您可以更詳細地描述您要完成的任務,我們可能會提出一個替代方案。
1
找出您的方法是否被調用的一種方法是使用代碼覆蓋工具。 Visual Studio Ultimate包含這些工具來幫助確定代碼覆蓋率。您首先測試您的代碼,然後運行測試,或者正常運行您的應用程序,然後檢查結果。
或者您也可以使用文本編輯器在源代碼中搜索方法名稱。 (這是迄今爲止最簡單的)。
0
如果您想在程序集中找到程序集的任何其他部分都不會調用的任何方法,那麼FxCop有一個「死代碼」規則,它將查找任何此類方法。
死代碼搜索不包括可以從外部世界調用的方法,例如公共方法。
相關問題
- 1. 有沒有辦法知道異常是否被禁用?
- 2. 有沒有辦法讓對象知道它被添加到DOM?
- 3. 有沒有辦法調用被覆蓋的對象的基類方法? (C++)
- 4. 有沒有辦法知道調用方法?
- 5. 有沒有辦法知道返回的對象是什麼?
- 6. 有沒有辦法知道用戶是否喜歡Facebook上的對象?
- 7. iPhone - 有沒有辦法知道引用是否(仍然)有效?
- 8. 有沒有辦法知道在C++中調用對象的方法的類的名稱?
- 9. 有沒有辦法知道一行是否更新?
- 10. 有沒有辦法從JVM中知道一個特定的方法是否被JIT編譯?
- 11. 有沒有辦法檢測對象是否被鎖定?
- 12. 有沒有辦法知道用戶是否發送了短信?
- 13. 有沒有辦法知道Data Saver是否啓用?
- 14. 有沒有辦法知道用戶是否打開郵件?
- 15. 有沒有辦法讓一個對象
- 16. 有沒有辦法知道文件名是否是Excel格式?
- 17. 有沒有辦法知道手機是否有通話?
- 18. 有沒有辦法找出一個對象是否被處置()或不?
- 19. 有沒有辦法知道方法webViewDidFinishLoad:哪個網址被加載?
- 20. 有沒有辦法讓linqpad知道一個字段是主鍵?
- 21. 有沒有辦法知道timerTask是否已完成?
- 22. 有沒有辦法知道Flash Player是否安裝了SWFObject?
- 23. 有沒有辦法知道rxjs websocket是否打開
- 24. 有沒有辦法知道ExecutorService是否成功結束?
- 25. 有沒有辦法知道HttpResponse是否在Https中?
- 26. 有沒有辦法知道是否已經創建了IWin32Window?
- 27. 有沒有辦法知道$ http請求是否超時?
- 28. 有沒有辦法知道一個方法需要多少個參數?
- 29. 有沒有辦法知道電子郵件是否用C#成功轉發?
- 30. 有沒有辦法檢測通知欄是否已被清除?
請詳細說明。 – 2010-10-14 08:43:03
我的猜測是OP想要一種類似AOP的方式來添加代碼來確定哪些代碼路徑被執行。 – 2010-10-14 08:48:59
謝謝你的寶貴答案。 其實我的場景很簡單。我正在研究一個現有的項目,它使用以下方法來更改數據庫中的值。 如果該類的屬性爲null,則不要在數據庫中更改此值,以便客戶端只能使用需要更改屬性來初始化該類。但有時某些屬性可能會更改爲空,這種情況在當前的邏輯中將不被支持。 – fresky 2010-10-18 03:31:41