Состояние порта правила 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 | Несоответствие версии анализатора |
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по