Udostępnij za pośrednictwem


Stan portu reguły Fxcop

Jeśli wcześniej użyto analizy kodu statycznego w programie Visual Studio, być może zastanawiasz się, które z tych reguł są dostępne w bieżącej implementacji jako analizatory platformy .NET. Na tej stronie wymieniono reguły, które zostały przeniesione. Zobacz Nieportowane reguły dla tych, które nie zostały przeniesione i czy istnieją plany ich przenoszenia.

Przeniesione reguły

Automatycznie wygenerowana strona dokumentacji w repozytorium roslyn-analyzers zawiera najbardziej aktualną listę reguł, które zostały przeniesione do analizatorów Roslyn. Ta strona zawiera również dodatkowe informacje, takie jak to, czy reguła jest domyślnie włączona i czy ma skojarzona poprawka kodu. (Poprawki kodu to poprawki jednym kliknięciem dostępne w menu ikony żarówki w programie Visual Studio).

Od daty na tej stronie lista reguł FxCop, które zostały przeniesione do analizatorów platformy .NET, obejmuje:

Identyfikator zasady Tytuł
CA1000 Nie deklaruj statycznych składowych na typach ogólnych
CA1001 Typy, do których należą pola możliwe do likwidacji, powinny być możliwe do likwidacji
CA1002 Nie uwidaczniaj list ogólnych
CA1003 Użyj ogólnych wystąpień procedury obsługi zdarzeń
CA1005 Unikaj nadmiernego użycia parametrów w typach ogólnych
CA1008 Typy wyliczeniowe powinny mieć wartość zero
CA1010 Kolekcje powinny implementować interfejs ogólny
CA1012 Typy abstrakcyjne nie powinny mieć konstruktorów
CA1014 Oznaczanie zestawów przy użyciu środowiska CLSCompliant
CA1016 Oznaczanie zestawów przy użyciu wersji zestawu
CA1017 Oznaczanie zestawów za pomocą funkcji ComVisible
CA1018 Oznacz atrybuty atrybutem AttributeUsage
CA1019 Zdefiniuj metody dostępu dla argumentów atrybutów
CA1021 Unikaj parametrów out
CA1024 Używaj właściwości, o ile to możliwe
CA1027 Oznacz typy wyliczeniowe atrybutem Flags
CA1028 Magazyn wyliczeniowy powinien mieć wartość Int32
CA1030 Używaj zdarzeń, o ile to możliwe
CA1031 Nie przechwytuj typów wyjątków ogólnych
CA1032 Zaimplementuj standardowe konstruktory wyjątków
CA1033 Metody interfejsu powinny móc zostać wywołane przez typy podrzędne
CA1034 Typy zagnieżdżone nie powinny być widoczne
CA1036 Przesłaniaj metody porównywalnych typów
CA1040 Unikaj pustych interfejsów
CA1041 Udostępnij komunikat ObsoleteAttribute
CA1043 Używanie argumentu całkowitego lub ciągu dla indeksatorów
CA1044 Właściwości nie powinny być tylko do zapisu
CA1045 Nie przekazuj typów przez odwołanie
CA1046 Nie przeciążaj operatora równości w typach referencyjnych
CA1047 Nie deklaruj chronionych składowych w typach zapieczętowanych
CA1050 Deklaruj typy w przestrzeniach nazw
CA1051 Nie deklaruj widocznych pól w wystąpieniach
CA1052 Statyczne typy uchwytów powinny być statyczne lub Niewzględne
CA1053 Statyczne typy posiadaczy nie powinny mieć konstruktorów (CA1053 jest częścią CA1052 dla analizatorów platformy .NET)
CA1054 Parametry identyfikatora URI nie powinny być ciągami
CA1055 Zwracane wartości identyfikatora URI nie powinny być ciągami
CA1056 Właściwości identyfikatora URI nie powinny być ciągami
CA1058 Typy nie powinny rozszerzać niektórych typów podstawowych
CA1060 Przenoszenie wywołań pinvokes do klasy metod natywnych
CA1061 Nie ukrywaj metod klasy bazowej
CA1062 Waliduj argumenty metod publicznych
CA1063 Poprawnie zaimplementuj interfejs IDisposable
CA1064 Wyjątki powinny być publiczne
CA1065 Nie wywołuj wyjątków w nieoczekiwanych lokalizacjach
CA1066 Typ {0} powinien implementować metodę IEquatable<T> , ponieważ zastępuje wartość Equals
CA1067 Zastąpij obiekt.Equals(object) podczas implementowania funkcji IEquatable<T>
CA1303 Nie przekazuj literałów jako zlokalizowanych parametrów
CA1304 Określ argument CultureInfo
CA1305 Określ argument IFormatProvider
CA1307 Określ parametr StringComparison w celu zapewnienia jednoznaczności
CA1308 Normalizuj ciągi do postaci zapisanej wielkimi literami
CA1309 Używanie porównania ciągów porządkowych
CA1401 Elementy P/Invoke nie powinny być widoczne
CA1501 Unikaj nadmiernego dziedziczenia
CA1502 Unikaj nadmiernej złożoności
CA1505 Unikaj kodu trudnego w utrzymaniu
CA1506 Unikaj nadmiernego sprzężenia klas
CA1700 Nie nadawaj wartościom wyliczeniowym nazwy „Reserved”
CA1707 Identyfikatory nie powinny zawierać znaków podkreślenia
CA1708 Identyfikatory powinny różnić się nie tylko wielkością liter
CA1710 Identyfikatory powinny mieć poprawny sufiks
CA1711 Identyfikatory nie powinny mieć nieprawidłowych sufiksów
CA1712 Nie dodawaj prefiksu z nazwą typu do wartości wyliczeniowych
CA1713 Zdarzenia nie powinny mieć prefiksu „before” ani „after”
CA1714 Wyliczenia z atrybutem Flags powinny mieć nazwy w liczbie mnogiej
CA1715 Identyfikatory powinny mieć poprawny prefiks
CA1716 Identyfikatory nie powinny być zgodne ze słowami kluczowymi
CA1717 Tylko wyliczenia z atrybutem Flags powinny mieć nazwy w liczbie mnogiej
CA1720 Identyfikator zawiera nazwę typu
CA1721 Nazwy właściwości nie powinny być takie same jak nazwy metod Get
CA1724 Nazwy typów nie powinny być zgodne z przestrzeniami nazw
CA1725 Nazwy parametrów powinny być zgodne z deklaracją podstawową
CA1801 Dokonaj przeglądu nieużywanych parametrów
CA1802 Używaj literałów tam, gdzie jest to właściwe
CA1805 Nie inicjuj niepotrzebnie
CA1806 Nie ignoruj wyników metod
CA1810 Inicjuj pola statyczne typu referencyjnego śródwierszowo
CA1812 Unikaj klas wewnętrznych bez wystąpień
CA1813 Unikaj niezapieczętowanych atrybutów
CA1814 Wybieraj tablice nieregularne zamiast wielowymiarowych
CA1815 Przesłaniaj metodę equals i operator równości w typach wartości
CA1816 Metody Dispose powinny wywoływać metodę SuppressFinalize
CA1819 Właściwości nie powinny zwracać tablic
CA1820 Testuj obecność pustych ciągów przy użyciu długości ciągu
CA1821 Usuń puste finalizatory
CA1822 Oznaczaj składowe jako statyczne
CA1823 Unikaj nieużywanych pól prywatnych
CA1824 Oznaczaj zestawy za pomocą atrybutu NeutralResourcesLanguageAttribute
CA1825 Unikaj alokacji tablic o zerowej długości.
CA2000 Likwiduj obiekty przed utratą zakresu
CA2002 Nie blokuj obiektów o słabej tożsamości
CA2100 Sprawdź zapytania SQL pod kątem luk w zabezpieczeniach
CA2101 Określ kierowanie dla argumentów ciągu P/Invoke
CA2109 Przejrzyj widoczne procedury obsługi zdarzeń
CA2119 Pieczętuj metody, które spełniają wymagania interfejsów prywatnych
CA2153 Nie przechwytuj uszkodzonych wyjątków stanu
CA2200 Wróć ponownie, aby zachować szczegóły stosu.
CA2201 Nie zgłaszaj wyjątków o zastrzeżonych typach
CA2207 Pola statyczne typu wartości inicjuj bezpośrednio
CA2208 Poprawnie twórz wystąpienia wyjątków argumentów
CA2211 Pola niebędące stałymi nie powinny być widoczne
CA2213 Pola możliwe do likwidacji należy likwidować
CA2214 Nie wywołuj w konstruktorach metod, które można przesłaniać
CA2215 Metody Dispose powinny wywoływać metodę Dispose klasy bazowej
CA2216 Typy możliwe do likwidacji powinny deklarować finalizator
CA2217 Nie oznaczaj typów wyliczeniowych atrybutem Flags
CA2219 Nie zgłaszaj wyjątków w klauzulach końcu
CA2225 Przeciążenia operatorów mają nazwane elementy alternatywne
CA2226 Operatory powinny mieć symetryczne przeciążenia
CA2227 Właściwości kolekcji powinny być tylko do odczytu
CA2229 Zaimplementuj konstruktory serializacji
CA2231 Operator przeciążenia równa się dla zastępowania typu wartości Equals
CA2234 Przekazywanie obiektów identyfikatora URI systemu zamiast ciągów
CA2235 Oznacz wszystkie pola nieprzeznaczone do serializacji
CA2237 Oznaczanie typów ISerializable z możliwością serializacji
CA2241 Podaj poprawne argumenty metod formatowania
CA2242 Poprawnie testuj nie-liczby (NaN)
CA2243 Analiza literałów ciągów atrybutów powinna przebiegać poprawnie
CA2300 Nie używaj niezabezpieczonego deserializatora BinaryFormatter
CA2301 Nie wywołuj metody BinaryFormatter.Deserialize bez uprzedniego ustawienia właściwości BinaryFormatter.Binder
CA2302 Upewnij się, że właściwość BinaryFormatter.Binder jest ustawiona przed wywołaniem metody BinaryFormatter.Deserialize
CA2305 Nie używaj niezabezpieczonego deserializatora LosFormatter
CA2310 Nie używaj niezabezpieczonego deserializatora NetDataContractSerializer
CA2311 Nie wykonuj deserializacji bez uprzedniego ustawienia właściwości NetDataContractSerializer.Binder
CA2312 Upewnij się, że właściwość NetDataContractSerializer.Binder jest ustawiona przed deserializacją
CA2315 Nie używaj niezabezpieczonego deserializatora ObjectStateFormatter
CA2321 Nie wykonuj deserializacji za pomocą obiektu JavaScriptSerializer zainicjowanego przy użyciu parametru SimpleTypeResolver
CA2322 Upewnij się, że obiekt JavaScriptSerializer nie został zainicjowany przy użyciu parametru SimpleTypeResolver przed deserializacją
CA3001 Przegląd kodu pod kątem luk umożliwiających wstrzyknięcie kodu SQL
CA3002 Przegląd kodu pod kątem luk umożliwiających działanie skryptów między witrynami
CA3003 Przegląd kodu pod kątem luk umożliwiających wstrzyknięcie ścieżki pliku
CA3004 Przegląd kodu pod kątem luk umożliwiających ujawnienie informacji
CA3005 Przegląd kodu pod kątem luk umożliwiających wstrzyknięcie protokołu LDAP
CA3006 Przegląd kodu pod kątem luk umożliwiających wstrzyknięcie polecenia procesu
CA3007 Przegląd kodu pod kątem luk umożliwiających otwarcie przekierowania
CA3008 Przegląd kodu pod kątem luk umożliwiających wstrzyknięcie wyrażenia XPath
CA3009 Przegląd kodu pod kątem luk umożliwiających wstrzyknięcie kodu XML
CA3010 Przegląd kodu pod kątem luk umożliwiających wstrzyknięcie kodu XAML
CA3011 Przegląd kodu pod kątem luk umożliwiających wstrzyknięcie biblioteki DLL
CA3012 Przegląd kodu pod kątem luk umożliwiających wstrzyknięcie wyrażenia regularnego
CA3061 Nie dodawaj schematu według adresu URL
CA3075 Niezabezpieczone przetwarzanie DTD w formacie XML
CA3076 Niezabezpieczone przetwarzanie skryptów XSLT.
CA3077 Niezabezpieczone przetwarzanie w projekcie interfejsu API, xmldocument i xmlTextReader
CA3147 Oznaczanie procedur obsługi czasowników za pomocą tokenu weryfikacji antyforgery
CA5350 Nie używaj słabych algorytmów kryptograficznych
CA5351 Nie używaj uszkodzonych algorytmów kryptograficznych
CA5358 Nie używaj niebezpiecznych trybów szyfrowania
CA5359 Nie wyłączaj weryfikacji certyfikatu
CA5360 Nie należy wywoływać niebezpiecznych metod w deserializacji
CA5361 Nie wyłączaj używania silnej kryptografii SChannel
CA5362 Nie odwołuj się do siebie w klasie możliwej do serializacji
CA5363 Nie wyłączaj sprawdzania poprawności żądania
CA5364 Nie używaj przestarzałych protokołów zabezpieczeń
CA5365 Nie wyłączaj sprawdzania nagłówka HTTP
CA5366 Używanie elementu XmlReader dla elementu DataSet Read Xml
CA5367 Nie serializuj typów z polami wskaźników
CA5368 Ustaw właściwość ViewStateUserKey dla klas pochodzących od klasy Page
CA5369 Używanie elementu XmlReader do deserializacji
CA5370 Używanie elementu XmlReader do sprawdzania poprawności czytnika
CA5371 Odczytywanie schematu przy użyciu elementu XmlReader
CA5372 Używanie elementu XmlReader dla elementu XPathDocument
CA5373 Nie używaj przestarzałej funkcji wyprowadzania klucza
CA5374 Nie używaj klasy XslTransform
CA5375 Nie używaj sygnatury dostępu współdzielonego konta
CA5376 Użyj właściwości HttpsOnly elementu SharedAccessProtocol
CA5377 Korzystanie z zasad dostępu na poziomie kontenera
CA5378 Nie wyłączaj protokołów ServicePointManagerSecurityProtocols
CA5379 Nie używaj algorytmu funkcji wyprowadzania słabego klucza
CA99999 Niezgodność wersji analizatora

Zobacz też