【发布时间】:2017-07-01 12:46:32
【问题描述】:
是否可以编写一个 Attribute 来跟踪方法以检测这些方法是否从未被调用?
[Track]
void MyMethod(){
}
输出:
warning: method "MyMethod" in "MyClass" has no references in code.
在编译时运行它并不是绝对必要的,但它应该在应用程序初始化时工作(无论如何在编译时更好)。
这个标签会被放到音频库的track methods中,因为音频被非常频繁地重构,我们通常在代码中搜索有0个引用的音频方法,我们想要标记这些方法以便我们检测快速删除未使用的音频资产。
基本上每次我们添加新的音效后,我们可能以后不再触发它(调用它的方法),音频文件/播放代码可以在应用程序中保留很长时间。
【问题讨论】:
-
您可以使用代码分析工具来查找未使用的方法,其优点是不会更改您的代码 (msdn.microsoft.com/en-us/library/3z0aeatx.aspx)
-
一个只能在特定类上运行的免费代码分析工具? (反正代码分析工具应该手动触发,我们希望自动输出警告)
-
@Everts 实际上我们通过调用“查找所有引用”来控制每个方法,但这是一项繁琐的手动任务,我们希望自动化 :) 谢谢。
-
@DarioOO 您可以配置您的项目,以便在每次构建后触发代码分析
-
@vc74 很好,如果您可以使用免费的分析工具展示如何做到这一点,该工具将被接受为答案,因为它可以解决我们的问题 :) (unity3D 生成的项目文件是否保留任何已完成的自定义配置到项目文件?)
标签: c# reflection custom-attributes