为了账号安全,请及时绑定邮箱和手机立即绑定

从未使用过 Resharper 方法

从未使用过 Resharper 方法

C#
慕无忌1623718 2021-10-09 10:53:10
我在一个项目中有一个面向公众的界面,最终将成为一个 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


查看完整回答
反对 回复 2021-10-09
?
四季花海

TA贡献1811条经验 获得超5个赞

取自@Matthias 对原始问题的评论,对于有意从库中导出的公共方法,请使用包和命名空间中[PublicAPI]的类的属性JetBrains.Annotations:


using JetBrains.Annotations;


[PublicAPI]

public interface MyInterface

{

    void MyMethod();

}

这不是原始问题的理想答案,因为它与应用于[UsedImplicitly]每个类一样乏味。然而,对我来说,它比全面禁用检查更有优势,因为它会指出我在公开方法或类时出错的地方。


它也有一个优势,[UsedImplicitly]因为它是对该类应该由库的使用者使用的意图的积极声明。[UsedImplicitly],相比之下,会向我表明该方法/类以某种方式(例如反/序列化)与当前解决方案的上下文一起使用。


查看完整回答
反对 回复 2021-10-09
  • 3 回答
  • 0 关注
  • 308 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信