Поделиться через


Состояние порта правила Fxcop

Если вы ранее использовали статический анализ кода в Visual Studio, вы можете задаться вопросом, какие из этих правил доступны в текущей реализации в качестве анализаторов .NET. На этой странице перечислены правила, перенесенные. Ознакомьтесь с непортированными правилами для тех, которые не были перенесены и планируется ли переносить их.

Перенесенные правила

Страница автоматической создания документации в репозитории roslyn-analyzers содержит самый актуальный список правил, которые были перенесены в анализаторы Roslyn. Эта страница также содержит дополнительные сведения, такие как включение правила по умолчанию и наличие связанного исправления кода. (Исправления кода — это исправления, доступные в меню значка лампочки в Visual Studio.)

По состоянию на этой странице список правил FxCop, перенесенных в анализаторы .NET:

Идентификатор правила Заголовок
CA1000 Не объявляйте статические члены в универсальных типах
CA1001 Типы, которым принадлежат освобождаемые поля, должны быть освобождаемыми
CA1002 Не предоставляйте универсальные списки
CA1003 Используйте экземпляры обработчика универсальных событий
CA1005 Не используйте слишком много параметров в универсальных типах
CA1008 Перечисляемые типы должны иметь нулевое значение
CA1010 Коллекции должны реализовать универсальный интерфейс
CA1012 Абстрактные типы не должны иметь конструкторы
CA1014 Пометка сборок с помощью CLSCompliant
CA1016 Пометка сборок версией сборки
CA1017 Пометка сборок с помощью ComVisible
CA1018 Пометьте атрибуты с помощью AttributeUsageAttribute
CA1019 Определите методы доступа для аргументов атрибута
CA1021 Не используйте параметры out
CA1024 По возможности используйте свойства
CA1027 Пометьте перечисляемые типы с помощью FlagsAttribute
CA1028 Перечисление служба хранилища должно быть Int32
CA1030 По возможности используйте события
CA1031 Не перехватывайте типы общих исключений
CA1032 Реализуйте стандартные конструкторы исключений
CA1033 Методы интерфейса должны быть доступны для вызова дочерними типами
CA1034 Вложенные типы не должны быть видимыми
CA1036 Переопределите методы в сопоставимых типах
CA1040 Не используйте пустые интерфейсы
CA1041 Укажите сообщение ObsoleteAttribute
CA1043 Использование целочисленного или строкового аргумента для индексаторов
CA1044 Свойства не должны быть доступными только для записи
CA1045 Не передавайте типы по ссылке
CA1046 Не перегружайте оператор равенства для ссылочных типов
CA1047 Не объявляйте защищенные члены в запечатанных типах
CA1050 Объявите типы в пространствах имен
CA1051 Не объявляйте видимые поля экземпляров
CA1052 Статические типы держателей должны быть статическими или неистранимыми
CA1053 Типы статических держателей не должны иметь конструкторов (CA1053 является частью CA1052 для анализаторов .NET)
CA1054 Параметры URI не должны быть строками
CA1055 Возвращаемые значения URI не должны быть строками
CA1056 Свойства URI не должны быть строками
CA1058 Типы не должны расширять определенные базовые типы
CA1060 Перемещение пинвоков в класс собственных методов
CA1061 Не скрывайте методы базовых классов
CA1062 Проверьте аргументы или открытые методы
CA1063 Правильно реализовать IDisposable
CA1064 Исключения должны быть общими
CA1065 Не вызывайте исключения в непредвиденных местах
CA1066 Тип {0} должен реализовать IEquatable<T> , так как он переопределяет equals
CA1067 Переопределите Object.Equals(object) при реализации IEquatable<T>
CA1303 Не передавайте литералы в качестве локализованных параметров
CA1304 Указывайте CultureInfo
CA1305 Указывайте IFormatProvider
CA1307 Используйте StringComparison, чтобы ясно указать намерение.
CA1308 Нормализуйте строки в верхний регистр
CA1309 Использование порядкового сравнения строк
CA1401 Методы P/Invoke не должны быть видимыми
CA1501 Избегайте излишнего наследования
CA1502 Избегайте чрезмерной сложности
CA1505 Избегайте кода, неудобного для поддержки
CA1506 Избегайте чрезмерной взаимозависимости классов
CA1700 Не присваивайте перечисляемым значениям имя Reserved
CA1707 Идентификаторы не должны содержать символы подчеркивания
CA1708 Идентификаторы должны отличаться не только прописными и строчными буквами
CA1710 Идентификаторы должны иметь правильные суффиксы
CA1711 Идентификаторы не должны иметь неправильные суффиксы
CA1712 Не добавляйте имя типа перед перечисляемыми значениями
CA1713 События не должны иметь префикс before или after
CA1714 У перечислений флагов должны быть имена во множественном числе
CA1715 Идентификаторы должны иметь правильные префиксы
CA1716 Идентификаторы не должны совпадать с ключевыми словами
CA1717 Только перечисления FlagsAttribute должны иметь имена во множественном числе
CA1720 Идентификатор содержит имя типа
CA1721 Имена свойств не должны совпадать с именами методов get
CA1724 Имена типов не должны соответствовать пространствам имен
CA1725 Имена параметров должны соответствовать базовому объявлению
CA1801 Проверьте неиспользуемые параметры
CA1802 Используйте литералы при необходимости
CA1805 Не делайте лишних инициализаций
CA1806 Не игнорируйте результаты метода
CA1810 Инициализируйте статические поля ссылочных типов при объявлении
CA1812 Избегайте неиспользуемых внутренних классов
CA1813 Избегайте незапечатанных атрибутов
CA1814 Используйте массивы массивов вместо многомерных массивов
CA1815 Переопределяйте операторы Equals и равенства для типов значений
CA1816 Методы Dispose должны вызывать SuppressFinalize
CA1819 Свойства не должны возвращать массивы
CA1820 Проверяйте наличие пустых строк, используя длину строки
CA1821 Удаление пустых методов завершения
CA1822 Пометьте члены как статические
CA1823 Избегайте неиспользуемых частных полей
CA1824 Помечайте сборки с помощью NeutralResourcesLanguageAttribute
CA1825 Избегайте выделения массива нулевой длины.
CA2000 Ликвидируйте объекты перед потерей области
CA2002 Не блокируйте объекты с ненадежными удостоверениями
CA2100 Проверьте запросы SQL на наличие уязвимостей системы безопасности
CA2101 Укажите тип маршалинга для строковых аргументов P/Invoke
CA2109 Проверьте видимые обработчики событий
CA2119 Запечатайте методы, соответствующие частным интерфейсам
CA2153 Не перехватывать поврежденные исключения состояния
CA2200 Повторное увеличение, чтобы сохранить сведения о стеке.
CA2201 Не порождайте исключения зарезервированных типов
CA2207 Используйте встроенную инициализацию статических полей типов значений
CA2208 Правильно создавайте экземпляры исключений аргументов
CA2211 Поля, не являющиеся константами, не должны быть видимыми
CA2213 Следует высвобождать высвобождаемые поля
CA2214 Не вызывайте переопределяемые методы в конструкторах
CA2215 Метод Dispose должен вызывать базовый класс Dispose
CA2216 Высвобождаемые типы должны объявлять методы завершения
CA2217 Не помечайте перечисляемые типы с помощью FlagsAttribute
CA2219 Не вызывайте исключения в предложениях, наконец,
CA2225 Для перегрузок операторов существуют варианты с именами
CA2226 Перегрузки операторов должны быть симметричными
CA2227 Свойства, возвращающие коллекции, должны быть доступными только для чтения
CA2229 Реализуйте конструкторы сериализации
CA2231 Оператор перегрузки равен переопределяющим типу значений Equals
CA2234 Передача объектов системного кода ресурса (URI) вместо строк
CA2235 Пометьте все несериализуемые поля
CA2237 Пометьте типы ISerializable атрибутом serializable
CA2241 Задайте правильные аргументы для методов форматирования
CA2242 Правильно выполняйте проверку NaN
CA2243 Синтаксический разбор строковых литералов должен осуществляться правильно
CA2300 Не используйте небезопасный десериализатор BinaryFormatter
CA2301 Не вызывайте BinaryFormatter.Deserialize, не задав предварительно BinaryFormatter.Binder
CA2302 Убедитесь, что BinaryFormatter.Binder задан перед вызовом BinaryFormatter.Deserialize
CA2305 Не используйте небезопасный десериализатор LosFormatter
CA2310 Не используйте небезопасный десериализатор NetDataContractSerializer
CA2311 Не десериализируйте, не задав предварительно NetDataContractSerializer.Binder
CA2312 Убедитесь, что NetDataContractSerializer.Binder задан перед десериализацией
CA2315 Не используйте небезопасный десериализатор ObjectStateFormatter
CA2321 Не десериализируйте с помощью JavaScriptSerializer, используя SimpleTypeResolver
CA2322 Убедитесь, что JavaScriptSerializer не был инициализирован с помощью SimpleTypeResolver до десериализации
CA3001 Проверьте код на наличие уязвимостей к внедрению кода SQL
CA3002 Проверьте код на наличие уязвимостей к межсайтовым сценариям (XSS)
CA3003 Проверьте код на наличие уязвимостей к внедрению пути к файлу
CA3004 Проверьте код на наличие уязвимостей к раскрытию информации
CA3005 Проверьте код на наличие уязвимостей к внедрению LDAP
CA3006 Проверьте код на наличие уязвимостей к внедрению команд процесса
CA3007 Проверьте код на наличие уязвимостей к открытому перенаправлению
CA3008 Проверьте код на наличие уязвимостей к внедрению кода XPath
CA3009 Проверьте код на наличие уязвимостей к внедрению кода XML
CA3010 Проверьте код на наличие уязвимостей к внедрению кода XAML
CA3011 Проверьте код на наличие уязвимостей к внедрению DLL
CA3012 Проверьте код на наличие уязвимостей к внедрению регулярных выражений
CA3061 Не добавляйте схему по URL-адресу
CA3075 Небезопасная обработка DTD в формате XML
CA3076 Небезопасная обработка скрипта XSLT.
CA3077 Небезопасная обработка в проектировании API, XmlDocument и XmlTextReader
CA3147 Пометка обработчиков команд с помощью маркера проверки антифоргерии
CA5350 Не используйте ненадежные алгоритмы шифрования
CA5351 Не используйте неисправные криптографические алгоритмы
CA5358 Не используйте небезопасные режимы шифрования
CA5359 Не отключайте проверку сертификата
CA5360 Не вызывайте опасные методы в десериализации
CA5361 Не отключайте использование SChannel для строгого шифрования
CA5362 Не ссылайтесь на себя в сериализуемом классе
CA5363 Не отключайте проверку запросов
CA5364 Не используйте устаревшие протоколы безопасности
CA5365 не отключайте проверку заголовков HTTP
CA5366 Использование XmlReader для dataSet Read Xml
CA5367 не сериализуйте типы с полями указателей
CA5368 задайте ViewStateUserKey для классов, производных от Page
CA5369 Использование XmlReader для десериализации
CA5370 Использование XmlReader для проверки средства чтения
CA5371 Использование XmlReader для чтения схемы
CA5372 Использование XmlReader для XPathDocument
CA5373 Не использовать устаревшую функцию формирования ключа
CA5374 не используйте XslTransform
CA5375 Не используйте подписанный URL-адрес учетной записи
CA5376 используйте SharedAccessProtocol HttpsOnly
CA5377 Использование политики доступа на уровне контейнера
CA5378 Не отключайте ServicePointManagerSecurityProtocols
CA5379 Не используйте алгоритм функции детивации слабых ключей
CA9999 Несоответствие версии анализатора

См. также