c# - S1172 上的误报 - "Unused method parameters should be removed"

标签 c# sonarqube sonar-runner

对于以下代码,我从规则 csharpsquid:S1172 -“应删除未使用的方法参数”中得到误报:

public class ExampleConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        return null;
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotSupportedException();
    }
}

Convert 和 ConvertBack 都是 IMultiValueConverter 实现的一部分,规则声明“忽略虚拟、覆盖方法和接口(interface)实现”。但是,在这种情况下,它会针对 Convert 和 ConvertBack 中的每个参数触发。

这是规则的错误,还是我设置不正确?

最佳答案

C# 插件目前单独分析每个文件,并且只有 mscorlib added as a reference . IMultiValueConverter是在PresentationFramework.dll中定义的,没有添加到编译包含的引用中,因此编译器找不到它,也不知道这两个方法是那个界面。

使用 SonarLint for Visual Studio 不会遇到同样的问题,因为它使用了所有引用。 (但这只适用于开发人员机器。)我们目前正在努力将同样准确的信息带到 SonarQube 平台。

关于c# - S1172 上的误报 - "Unused method parameters should be removed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33393414/

相关文章:

java - Jenkins Sonar 扫描仪与 Maven Sonar :sonar goal

gradle - 使用 Java 11 运行 Sonar Scanner 时主版本号错误

c# - Azure 移动应用程序 - 尝试 POST 时收到 405(不允许的方法)

c# - AggregateException - AggregateException.Flatten().InnerException 代表什么?

c# - 使用 Jenkins 的 Maven 聚合器对 c# 多模块项目进行 Sonarqube StyleCop 分析

angular - 如何在 Jenkins 中对 Angular 进行代码质量分析?

svn - Sonar 单片机故障 1 行无故障数据

android - 如何配置SonarRunner属性以读取android单元测试和junit测试的junit报告

c# - ASP.NET 身份编辑登录用户数据?

c# - Visual C# Studio 项目中的哪些文件不需要进行版本控制?