我在一个项目中有一个面向公众的界面,最终将成为一个 nuget 包。这是代码:public interface MyInterface{ void MyMethod();}现在这个接口中的每个方法都没有在这个库中使用,而是通过包在其他中使用。然而,这里的每一个方法都有一个警告Method x is never used.是否有一种简单的方法可以告诉 ReSharper 在我打开的每个解决方案中的每个项目中忽略每个公共方法,以便不在公共方法中执行此检查。我有几种方法可以解决这个问题,但这太乏味了。选项 1:[UsedImplicitly]在我班级中的每个方法上。在我看来,这太乏味了。选项 2:[SuppressMessage("ReSharper", "UnusedMember.Global")]不那么乏味,但仍然必须在每个类上实现。一定有更好的方法?我还在某处读到只有在Enable solution-wide analysis检查时才会发生这种情况。在我的情况下不是。我在下面找到了这个设置Reshaper Options > Code Inspection > Settings
3 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
在您的情况下,由于您提到 SWEA 已禁用,我建议禁用以下复选框ReSharper | Options | Code Inspection | Settings | General | Show unused non-private type members when solution-wide analysis is off
。
四季花海
TA贡献1811条经验 获得超5个赞
取自@Matthias 对原始问题的评论,对于有意从库中导出的公共方法,请使用包和命名空间中[PublicAPI]的类的属性JetBrains.Annotations:
using JetBrains.Annotations;
[PublicAPI]
public interface MyInterface
{
void MyMethod();
}
这不是原始问题的理想答案,因为它与应用于[UsedImplicitly]每个类一样乏味。然而,对我来说,它比全面禁用检查更有优势,因为它会指出我在公开方法或类时出错的地方。
它也有一个优势,[UsedImplicitly]因为它是对该类应该由库的使用者使用的意图的积极声明。[UsedImplicitly],相比之下,会向我表明该方法/类以某种方式(例如反/序列化)与当前解决方案的上下文一起使用。
- 3 回答
- 0 关注
- 308 浏览
添加回答
举报
0/150
提交
取消