4

我无法评估 CA1062(验证公共方法的参数)。

根据此屏幕截图,我创建了一个 .Net Standard 2.0 C# 类库并安装Microsoft.CodeQuality.Analyzers了其他几个 nuget 包: 项目分析仪

根据图像,我还在项目的规则集中启用了 CA1062:

规则集中启用 CA1062

我创建了这个类来测试 CA1062(验证公共方法的参数)是否评估:

public class Person
{
    public String Name { get; }
    public Person(String name)
    {
        this.Name = name;
    }
    public void DeclareWarOn(Person enemy)
    {
        String enemyName = enemy.Name;
        Console.WriteLine($"{this.Name} declared war on {enemyName}");
    }
}

DeclareWarOn方法中,enemy从不检查参数的null值,而是在行中使用String enemyName = enemy.Name;

这是假设触发CA1062,但它没有被触发。

其他规则会评估。例如,我创建了一个internal异常类,如下所示:

internal class MyException : Exception 
{ 
    ... 
}

这确实触发了它的相关代码分析警告(CA1064)。但是我无法让 CA1062 进行评估。

4

1 回答 1

0

我最近删除了所有分析器并在这个项目上安装了更高版本的 FxCop 包,它解决了这个问题。

(我已经添加了这个,以防任何开发人员发现这篇文章并且仍在寻找解决方案)

于 2019-08-19T16:28:23.707 回答