2017-02-13 58 views
7

是否可以寫一個屬性,可以跟蹤的方法來檢測,如果這些方法從來沒有叫什麼名字?C#屬性來檢測未使用的方法

[Track] 
void MyMethod(){ 

} 

輸出:

warning: method "MyMethod" in "MyClass" has no references in code. 

這不是絕對必要把它在編譯時運行,但是當應用程序初始化(在編譯時更好反正)它應該工作。

這個標籤將推杆以跟蹤方法在音頻庫,因爲音頻被重構非常頻繁,我們通常尋找與代碼0引用音頻方法,我們要以紀念這些方法使我們能夠快速檢測和刪除未使用音頻資產。

基本上每個我們添加了一個新的聲音效果時,我們可能以後不再觸發它(調用其方法),以及音頻文件/播放碼可保持在應用了很長時間。

+8

您可以使用代碼分析工具來查找未使用的方法,而不需要更改代碼(https://msdn.microsoft.com/en-us/library/3z0aeatx.aspx) –

+0

的優勢免費代碼分析只能在特定類上運行的工具? (無論如何應該手動觸發代碼分析工具,我們希望自動輸出警告) – GameDeveloper

+0

@Everts實際上,我們通過調用「查找所有引用」來控制每種方法,但這是一項繁瑣的手動任務,我們希望自動化:)謝謝。 – GameDeveloper

回答

2

也許這就是你要找的答案嗎?

Finding all references to a method with Roslyn

您可以使用代碼中有自動化自己與反思的東西,我會說

+0

不知道這是否會在Unity工作,我會盡力謝謝! :) – GameDeveloper

+1

似乎羅斯林尚不可用到統一 – GameDeveloper

+1

好,你總是可以使用正則表達式來做到這一點自然的東西,但它會要重得多:( –