Status der FxCop-Regelportierung
Wenn Sie zuvor die statische Codeanalyse in Visual Studio verwendet haben, fragen Sie sich vielleicht, welche dieser Regeln in der aktuellen Implementierung als .NET-Analysetools verfügbar sind. Auf dieser Seite werden die Regeln aufgelistet, die portiert wurden. Informationen zu nicht portierten Regeln, und ob Pläne bestehen, sie zu portieren, finden Sie unter Nicht portierte Regeln.
Portierte Regeln
Die automatisch generierte Dokumentationsseite im Repository „roslyn-analyzers“ enthält die aktuellste Liste der Regeln, die zu Roslyn-Analysetools portiert wurden. Diese Seite enthält außerdem zusätzliche Informationen, z. B. ob die Regel standardmäßig aktiviert ist und ob sie über eine zugeordnete Codekorrektur verfügt. (Codekorrekturen sind Ein-Klick-Korrekturen, die im Fehlerbehebungsmenü (Glühbirne) in Visual Studio verfügbar sind.)
Zum Zeitpunkt des Datums auf dieser Seite enthält die Liste der FxCop-Regeln, die zu .NET-Analysetools portiert wurden, folgende Regeln:
Regel-ID | Titel |
---|---|
CA1000 | Statische Member nicht in generischen Typen deklarieren. |
CA1001 | Typen, die löschbare Felder besitzen, müssen gelöscht werden können. |
CA1002 | Generische Listen nicht verfügbar machen. |
CA1003 | Generische Ereignishandlerinstanzen verwenden. |
CA1005 | Übermäßige Anzahl von Parametern in generischen Typen vermeiden. |
CA1008 | Enumerationen müssen einen Wert von 0 (null) aufweisen. |
CA1010 | Sammlungen müssen eine generische Schnittstelle implementieren. |
CA1012 | Abstrakte Typen dürfen keine Konstruktoren aufweisen. |
CA1014 | Assemblys mit CLSCompliant markieren |
CA1016 | Assemblys mit Assemblyversion markieren |
CA1017 | Assemblys mit ComVisible markieren |
CA1018 | Attribute mit AttributeUsageAttribute markieren. |
CA1019 | Accessoren für Attributargumente definieren. |
CA1021 | out-Parameter vermeiden. |
CA1024 | Nach Möglichkeit Eigenschaften verwenden. |
CA1027 | Enumerationen mit FlagsAttribute markieren. |
CA1028 | Der Enumerationsspeicher sollte Int32 sein. |
CA1030 | Nach Möglichkeit Ereignisse verwenden. |
CA1031 | Allgemeine Ausnahmetypen nicht auffangen. |
CA1032 | Standardausnahmekonstruktoren implementieren. |
CA1033 | Schnittstellenmethoden sollten von untergeordneten Typen aufgerufen werden können. |
CA1034 | Geschachtelte Typen sollten nicht sichtbar sein. |
CA1036 | Methoden bei vergleichbaren Typen überschreiben. |
CA1040 | Leere Schnittstellen vermeiden. |
CA1041 | ObsoleteAttribute-Meldung bereitstellen. |
CA1043 | Ganzzahliges Argument oder Zeichenfolgenargument für Indexer verwenden |
CA1044 | Eigenschaften sollten nicht lesegeschützt sein. |
CA1045 | Typen nicht als Verweis übergeben. |
CA1046 | Gleichheitsoperator für Referenztypen nicht überladen. |
CA1047 | Geschützte Member in versiegelten Typen nicht deklarieren. |
CA1050 | Typen in Namespaces deklarieren. |
CA1051 | Sichtbare Instanzfelder nicht deklarieren. |
CA1052 | Statische Containertypen müssen „Static“ oder „NotInheritable“ sein. |
CA1053 | Statische Haltertypen sollten keine Konstruktoren aufweisen (CA1053 ist Teil von CA1052 für .NET-Analysetools). |
CA1054 | URI-Parameter dürfen keine Zeichenfolgen sein. |
CA1055 | URI-Rückgabewerte dürfen keine Zeichenfolgen sein. |
CA1056 | URI-Eigenschaften dürfen keine Zeichenfolgen sein. |
CA1058 | Typen sollten bestimmte Basistypen nicht erweitern. |
CA1060 | P/Invokes in NativeMethods-Klasse verschieben |
CA1061 | Basisklassenmethoden nicht ausblenden. |
CA1062 | Argumente von öffentlichen Methoden validieren. |
CA1063 | IDisposable korrekt implementieren. |
CA1064 | Ausnahmen sollten öffentlich sein. |
CA1065 | Keine Ausnahmen an unerwarteten Speicherorten auslösen. |
CA1066 | Typ {0} muss IEquatable<T> implementieren, weil er „Equals“ (Ist gleich) außer Kraft setzt. |
CA1067 | „Object.Equals(object)“ bei Implementierung von „IEquatable<T>“ außer Kraft setzen |
CA1303 | Literale nicht als lokalisierte Parameter übergeben. |
CA1304 | CultureInfo angeben. |
CA1305 | IFormatProvider angeben. |
CA1307 | "StringComparison" zur Verdeutlichung angeben |
CA1308 | Zeichenfolgen in Großbuchstaben normalisieren. |
CA1309 | Ordinal-StringComparison verwenden |
CA1401 | P/Invokes dürfen nicht sichtbar sein. |
CA1501 | Übermäßige Vererbung vermeiden. |
CA1502 | Übermäßige Komplexität vermeiden. |
CA1505 | Nicht wartbaren Code vermeiden. |
CA1506 | Übermäßige Klassenkopplungen vermeiden. |
CA1700 | Enumerationswerte nicht mit "Reserviert" benennen. |
CA1707 | Bezeichner sollten keine Unterstriche enthalten. |
CA1708 | Bezeichner sollten sich nicht nur durch die Groß-/Kleinschreibung unterscheiden. |
CA1710 | Bezeichner sollten ein richtiges Suffix aufweisen. |
CA1711 | Bezeichner sollten kein falsches Suffix aufweisen. |
CA1712 | Keine Typnamen als Präfixe für Enumerationswerte verwenden. |
CA1713 | Ereignisse sollten kein Before- oder After-Präfix aufweisen. |
CA1714 | Flags-Enumerationen sollten Pluralnamen aufweisen. |
CA1715 | Bezeichner sollten ein korrektes Präfix aufweisen. |
CA1716 | Bezeichner sollten nicht mit Schlüsselwörtern übereinstimmen. |
CA1717 | Nur FlagsAttribute-Enumerationen sollten Pluralnamen aufweisen. |
CA1720 | Bezeichner enthält Typnamen |
CA1721 | Eigenschaftennamen sollten nicht mit Get-Methoden übereinstimmen. |
CA1724 | Typnamen sollten nicht mit Namespaces übereinstimmen. |
CA1725 | Parameternamen sollten mit der Basisdeklaration übereinstimmen. |
CA1801 | Nicht verwendete Parameter überprüfen. |
CA1802 | Nach Möglichkeit Literale verwenden. |
CA1805 | Keine unnötige Initialisierung. |
CA1806 | Methodenergebnisse nicht ignorieren. |
CA1810 | Statische Felder von Referenztypen inline initialisieren. |
CA1812 | Nicht instanziierte interne Klassen vermeiden. |
CA1813 | Nicht versiegelte Attribute vermeiden. |
CA1814 | Jagged Arrays mehrdimensionalen Arrays vorziehen. |
CA1815 | Equals und Gleichheitsoperator für Werttypen überschreiben. |
CA1816 | Dispose-Methoden müssen SuppressFinalize aufrufen |
CA1819 | Eigenschaften sollten keine Arrays zurückgeben. |
CA1820 | Mithilfe der Zeichenfolgenlänge auf leere Zeichenfolgen prüfen. |
CA1821 | Leere Finalizer entfernen |
CA1822 | Member als statisch markieren. |
CA1823 | Nicht verwendete private Felder vermeiden. |
CA1824 | Assemblys mit NeutralResourcesLanguageAttribute markieren. |
CA1825 | Vermeiden von Arrayzuteilungen mit einer Länge von 0 (Null). |
CA2000 | Objekte verwerfen, bevor Bereich verloren geht. |
CA2002 | Auf Objekten mit schwacher Identität nicht sperren. |
CA2100 | SQL-Abfragen auf Sicherheitsrisiken überprüfen. |
CA2101 | Marshalling für P/Invoke-Zeichenfolgenargumente festlegen. |
CA2109 | Sichtbare Ereignishandler überprüfen. |
CA2119 | Methoden versiegeln, die die Bedingungen privater Schnittstellen erfüllen. |
CA2153 | Keine Ausnahmen wegen beschädigtem Zustand abfangen |
CA2200 | Erneut auslösen, um Stapeldetails beizubehalten. |
CA2201 | Keine reservierten Ausnahmetypen auslösen. |
CA2207 | Statische Felder für Werttyp inline initialisieren. |
CA2208 | Argumentausnahmen korrekt instanziieren. |
CA2211 | Nicht konstante Felder sollten nicht sichtbar sein. |
CA2213 | Verwerfbare Felder verwerfen. |
CA2214 | Überschreibbare Methoden in Konstruktoren nicht aufrufen. |
CA2215 | Dispose-Methoden müssen die Dispose-Funktion der Basisklasse aufrufen. |
CA2216 | Verwerfbare Typen sollten einen Finalizer deklarieren. |
CA2217 | Enumerationen nicht mit FlagsAttribute markieren. |
CA2219 | Keine Ausnahmen in finally-Klauseln auslösen |
CA2225 | Operatorüberladungen weisen benannte Alternativen auf. |
CA2226 | Operatoren sollten symmetrische Überladungen aufweisen. |
CA2227 | Sammlungseigenschaften sollten schreibgeschützt sein. |
CA2229 | Serialisierungskonstruktoren implementieren. |
CA2231 | Gleichheitsoperator beim Überschreiben von „ValueType.Equals“ überladen |
CA2234 | System.Uri-Objekte anstelle von Zeichenfolgen übergeben |
CA2235 | Alle nicht serialisierbaren Felder markieren. |
CA2237 | ISerializable-Typen als serialisierbar markieren |
CA2241 | Geben Sie die korrekte Anzahl für Formatierungsmethoden an. |
CA2242 | Ordnungsgemäß auf NaN testen. |
CA2243 | Attribute-Zeichenfolgenliterale müssen stets richtig analysiert werden. |
CA2300 | Nicht den unsicheren BinaryFormatter zur Deserialisierung verwenden |
CA2301 | BinaryFormatter.Deserialize nicht ohne Festlegung von BinaryFormatter.Binder aufrufen |
CA2302 | Festlegung von BinaryFormatter.Binder vor dem Aufruf von BinaryFormatter.Deserialize sicherstellen |
CA2305 | Unsicheren Deserialisierer nicht verwenden: LosFormatter |
CA2310 | Unsicheren Deserialisierer nicht verwenden: NetDataContractSerializer |
CA2311 | Nicht deserialisieren, ohne zuerst NetDataContractSerializer.Binder festzulegen |
CA2312 | Vor dem Deserialisieren sicherstellen, dass NetDataContractSerializer.Binder festgelegt ist |
CA2315 | Unsicheren Deserialisierer nicht verwenden: ObjectStateFormatter |
CA2321 | Nicht mit JavaScriptSerializer und SimpleTypeResolver deserialisieren |
CA2322 | Vor dem Deserialisieren sicherstellen, dass JavaScriptSerializer nicht mit SimpleTypeResolver initialisiert ist |
CA3001 | Review code for SQL injection vulnerabilities (Überprüfen von Code auf Sicherheitsrisiken durch Einschleusung von SQL-Befehlen) |
CA3002 | Review code for XSS vulnerabilities (Überprüfen von Code auf Sicherheitsrisiken durch XSS) |
CA3003 | Review code for file path injection vulnerabilities (Überprüfen von Code auf Sicherheitsrisiken durch Einschleusungen über einen Dateipfad) |
CA3004 | Review code for information disclosure vulnerabilities (Überprüfen von Code auf Sicherheitsrisiken bei der Veröffentlichung von Informationen) |
CA3005 | Review code for LDAP injection vulnerabilities (Überprüfen von Code auf Sicherheitsrisiken durch Einschleusung von LDAP-Befehlen) |
CA3006 | Review code for process command injection vulnerabilities (Überprüfen von Code auf Sicherheitsrisiken durch Einschleusung von Prozessbefehlen) |
CA3007 | Review code for open redirect vulnerabilities (Überprüfen von Code auf Sicherheitsrisiken durch offene Umleitungen) |
CA3008 | Review code for XPath injection vulnerabilities (Überprüfen von Code auf Sicherheitsrisiken durch Einschleusungen von XPath-Befehlen) |
CA3009 | Review code for XML injection vulnerabilities (Überprüfen von Code auf Sicherheitsrisiken durch Einschleusungen von XML-Befehlen) |
CA3010 | Review code for XAML injection vulnerabilities (Überprüfen von Code auf Sicherheitsrisiken durch Einschleusungen von XAML-Befehlen) |
CA3011 | Review code for DLL injection vulnerabilities (Überprüfen von Code auf Sicherheitsrisiken durch Einschleusungen von DLL) |
CA3012 | Review code for regex injection vulnerabilities (Überprüfen von Code auf Sicherheitsrisiken durch Einschleusungen von RegEx) |
CA3061 | Schema nicht mittels URL hinzufügen |
CA3075 | Unsichere DTD-Verarbeitung in XML |
CA3076 | Unsichere Verarbeitung von XSLT-Skript. |
CA3077 | Unsichere Verarbeitung in API-Design, XmlDocument und XmlTextReader |
CA3147 | Verbhandler mit ValidateAntiForgeryToken markieren |
CA5350 | Keine schwachen Kryptografiealgorithmen verwenden. |
CA5351 | Keine beschädigten Kryptografiealgorithmen verwenden |
CA5358 | Verwenden Sie keine unsicheren Verschlüsselungsmodi. |
CA5359 | Zertifikatüberprüfung nicht deaktivieren |
CA5360 | Keine gefährlichen Methoden bei der Deserialisierung aufrufen. |
CA5361 | Verwendung der starken Kryptografie durch SChannel nicht deaktivieren |
CA5362 | In serialisierbaren Klassen keine Selbstverweise verwenden |
CA5363 | Anforderungsüberprüfung nicht deaktivieren |
CA5364 | Keine veralteten Sicherheitsprotokolle verwenden |
CA5365 | Überprüfung von HTTP-Headern nicht deaktivieren |
CA5366 | XmlReader für DataSet.ReadXML verwenden |
CA5367 | Typen mit Zeigerfeldern dürfen nicht serialisiert werden. |
CA5368 | Festlegen von ViewStateUserKey für von der Seite abgeleitete Klassen |
CA5369 | XmlReader zur Deserialisierung verwenden |
CA5370 | XmlReader zur Überprüfung des Lesers verwenden |
CA5371 | XmlReader zum Lesen von Schemas verwenden |
CA5372 | XmlReader für XPathDocument verwenden |
CA5373 | Verwenden Sie keine veraltete Schlüsselableitungsfunktion. |
CA5374 | Kein XslTransform verwenden |
CA5375 | Shared Access Signature des Kontos nicht verwenden |
CA5376 | SharedAccessProtocol.HttpsOnly verwenden. |
CA5377 | Zugriffsrichtlinie auf Containerebene verwenden |
CA5378 | Deaktivieren Sie ServicePointManagerSecurityProtocols nicht. |
CA5379 | Keinen schwachen Algorithmus für die Schlüsselableitungsfunktion verwenden |
CA9999 | Konflikt bei der Analysetoolversion |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für