从未使用过Resharper方法

时间:2018-07-15 22:44:04

标签: c# resharper resharper-10.0

我在一个项目中有一个面向公众的界面,最终将成为一个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

下找到了此设置

2 个答案:

答案 0 :(得分:5)

在您的情况下,由于您已经提到SWEA已禁用,因此我建议禁用以下复选框ReSharper | Options | Code Inspection | Settings | General | Show unused non-private type members when solution-wide analysis is off

答案 1 :(得分:0)

解决方案#1

您可以使用

 // ReSharper disable UnusedMember.Global

如果将其放在方法前面,则会禁用该方法的警告...

public interface IMyInterface
{
    // ReSharper disable once UnusedMember.Global
    void MyMethod();
}

如果将其放在名称空间声明之前,则会禁用整个文件的警告。

否则,您可以这样做,因此可以禁用该界面的警告:

[SuppressMessage("ReSharper", "UnusedMember.Global")]
public interface IMyInterface
{
    void MyMethod();
}

解决方案2

您可以采取的最后一种解决方案是在“ Resharper选项”中取消选中“代码检查”->“编译器警告”->“从不使用”字段来禁用此类消息。

我想这是唯一可以解决所有类问题的解决方案。