C#属性检测未使用的方法

时间:2017-02-13 13:49:53

标签: c# reflection custom-attributes

是否可以编写一个可以跟踪方法的属性来检测这些方法是否永远不会被调用?

[Track]
void MyMethod(){

}

输出:

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

在编译时运行它并不是绝对必要的,但它应该在应用程序初始化时起作用(无论如何在编译时更好)。

此标记将被放置到音频库上的跟踪方法,因为音频经常被重构,我们通常在代码中搜索带有0个引用的音频方法,我们要标记这些方法,以便我们可以检测到快速删除未使用的音频资产。

基本上每次我们添加新的音效时,我们以后可能不再触发它(调用它的方法),音频文件/播放代码可以在应用程序中保留很长时间。

2 个答案:

答案 0 :(得分:2)

也许这就是您正在寻找的答案?

Finding all references to a method with Roslyn

你可以使用那里的代码来自动化你自己的一些反思我会说

答案 1 :(得分:2)

部分答案可在此处找到:

C# reflection and finding all references

我可以使用该信息来获取对标有特定属性的方法的引用,但这是一个运行时脚本(但总比没有好)。