CA1062 не оценивается в библиотеке классов .Net Standard 2.0 - PullRequest
0 голосов
/ 23 ноября 2018

Я не могу заставить CA1062 (проверять аргументы открытых методов) для оценки.

Я создал библиотеку классов .Net Standard 2.0 C # и установил Microsoft.CodeQuality.Analyzers и несколько других пакетов nuget согласноЭтот снимок экрана: Analyzers for the project

Я также включил CA1062 в наборе правил для проекта, как показано на изображении:

CA1062 is enabled in the ruleset

Я создал этот класс, чтобы проверить, оценивает ли 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.

1 Ответ

0 голосов
/ 19 августа 2019

Недавно я удалил все Анализаторы и установил более высокую версию пакета FxCop в этом проекте, и это решило проблему.

(Я добавил это на случай, если какой-либо разработчик обнаружит этот пост, ивсе еще в поисках решения)

...