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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla