我无法获取CA1062(验证公共方法的参数)进行评估。
我创建了一个.Net Standard 2.0 C#类库,并根据此屏幕截图安装了Microsoft.CodeQuality.Analyzers
和其他几个nuget包:
根据镜像,我还在项目的规则集中启用了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进行评估。
最佳答案
我最近删除了所有分析器,并在该项目上安装了更高版本的FxCop软件包,它解决了该问题。
(我添加了此内容,以防任何开发人员发现此信息并仍在寻找解决方案)