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

Gam*_*per 7 c# reflection custom-attributes

是否可以编写一个可以跟踪方法的属性来检测这些方法是否从未被调用过?

[Track]
void MyMethod(){

}
Run Code Online (Sandbox Code Playgroud)

输出:

warning: method "MyMethod" in "MyClass" has no references in code.
Run Code Online (Sandbox Code Playgroud)

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

这个标签将用于跟踪音频库上的方法,因为音频经常被重构,我们通常在代码中搜索带有0个引用的音频方法,我们想要标记这些方法,这样我们就可以快速检测并删除未使用的音频资产.

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

小智 2

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

使用 Roslyn 查找对某个方法的所有引用

你可以使用那里的代码通过反射来自动化你自己的东西我想说