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

我创建了一个.Net Standard 2.0 C#类库,并根据此屏幕截图安装了Microsoft.CodeQuality.Analyzers和其他几个nuget包:
c# - CA1062不评估.Net Standard 2.0类库-LMLPHP

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

c# - CA1062不评估.Net Standard 2.0类库-LMLPHP

我创建了此类来测试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方法中,从不检查参数enemynull值,而是在String enemyName = enemy.Name;行中使用

假定触发CA1062,但未触发。

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

internal class MyException : Exception
{
    ...
}


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

最佳答案

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

(我添加了此内容,以防任何开发人员发现此信息并仍在寻找解决方案)

08-05 02:42