CA1062 未在 .Net Standard 2.0 class 库上进行评估
CA1062 not evaluating on .Net Standard 2.0 class library
我无法获取 CA1062(验证 public 方法的参数)进行评估。
我已经创建了一个 .Net Standard 2.0 C# class 库并安装了 Microsoft.CodeQuality.Analyzers
和其他几个 nuget 包,按照这个截图:
我还在项目的规则集中启用了 CA1062,如图所示:
我创建了这个 class 来测试 CA1062(验证 public 方法的参数)是否评估:
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
Exception class 这样的:
internal class MyException : Exception
{
...
}
而这确实触发了相关的代码分析警告(CA1064)。
但是我无法让 CA1062 进行评估。
我最近删除了所有分析器并在此项目上安装了更高版本的 FxCop 包,它解决了问题。
(我添加了这个以防任何开发人员发现这个 post 并且仍在寻找解决方案)
我无法获取 CA1062(验证 public 方法的参数)进行评估。
我已经创建了一个 .Net Standard 2.0 C# class 库并安装了 Microsoft.CodeQuality.Analyzers
和其他几个 nuget 包,按照这个截图:
我还在项目的规则集中启用了 CA1062,如图所示:
我创建了这个 class 来测试 CA1062(验证 public 方法的参数)是否评估:
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
Exception class 这样的:
internal class MyException : Exception
{
...
}
而这确实触发了相关的代码分析警告(CA1064)。 但是我无法让 CA1062 进行评估。
我最近删除了所有分析器并在此项目上安装了更高版本的 FxCop 包,它解决了问题。
(我添加了这个以防任何开发人员发现这个 post 并且仍在寻找解决方案)