有没有办法告诉resharper忽略整个解决方案的特定方法名称?

时间:2016-04-22 18:40:29

标签: c# resharper

基本上,我正在寻找与[UsedImplicitly]注释类似的功能,但我有一组方法名称/签名我希望将它应用于整个解决方案,而不是全部使用注释这个地方。

我在Unity3D的项目中使用VS2015和Resharper 10。对于那些不熟悉的人,Unity3D允许您继承其提供的类之一,以允许您编写的类附加到将存在于引擎内的worldspace中的对象。然后,您的代码通过一系列与继承类相关的生命周期方法(Awake(),Start(),Update()等)绑定到继承的类功能。

不幸的是,由于遗留(差)设计决策,Unity并未将这些方法公开为虚拟或通过接口,而是使用类似于运行时反射的技术来定位代码生命周期方法定义。这些意味着在设计时,没有直接引用这些方法,R#将它们标记为未使用。

到目前为止,我能找到的唯一选项是始终为每个方法添加注释(由于这些方法被频繁声明,因此用大量注释污染代码库),始终将它们标记为公共(一个可行的解决方案,但并不总是理想的,并且反对Unity3D惯例),或者只是处理Resharper抛出的误报。

理想情况下,我希望能够做的是在R#设置中配置一些内容来说"具有此名称的方法应始终标记为UsedImplicitly"或类似的东西。到目前为止,虽然我还没有找到办法做到这一点。任何的意见都将会有帮助。感谢。

1 个答案:

答案 0 :(得分:3)

There isn't a way to get ReSharper to do this for a generic codebase, but there is a ReSharper extension for Unity which will do what you want. It recognises classes that derive from MonoBehaviour and marks the appropriate methods as in use. There are currently outstanding pull requests to support more methods, I hope to get those merged and released soon.

Go to ReSharper → Extension Manager and search for "Unity".