Regelsatz für verwaltete empfohlene Regeln für verwalteten Code

Sie können verwaltete Microsoft verwenden empfiehlt sich Regelregelsatz, sich auf die wichtigsten Probleme im verwalteten Code, darunter potenzielle Sicherheitslücken, Abstürze der Anwendung und andere wichtige Logik- und Entwurfsfehler konzentrieren.Es empfiehlt sich, diesen Regelsatz in jeden benutzerdefinierten Regelsatz aufzunehmen, den Sie für die Projekte erstellen.

Regel

Beschreibung

CA1001

Typen, die löschbare Felder besitzen, müssen gelöscht werden können

CA1009

Ereignishandler korrekt deklarieren

CA1016

Assemblys mit AssemblyVersionAttribute markieren

CA1033

Schnittstellenmethoden sollten von untergeordneten Typen aufgerufen werden können

CA1049

Typen, die systemeigene Ressourcen besitzen, müssen gelöscht werden können

CA1060

P/Invokes in NativeMethods-Klasse verschieben

CA1061

Basisklassenmethoden nicht ausblenden

CA1063

IDisposable korrekt implementieren

CA1065

Keine Ausnahmen an unerwarteten Speicherorten auslösen

CA1301

Doppelte Zugriffstasten vermeiden

CA1400

Für P/Invoke müssen Einstiegspunkte vorhanden sein.

CA1401

P/Invokes dürfen nicht sichtbar sein.

CA1403

Typen mit automatischem Layout sollten nicht für COM sichtbar sein

CA1404

GetLastError unmittelbar nach P/Invoke aufrufen

CA1405

Für COM sichtbare Basistypen sollten für COM sichtbar sein

CA1410

Die COM-Registrierungsmethoden müssen übereinstimmen.

CA1415

P/Invokes korrekt deklarieren

CA1821

Leere Finalizer entfernen

CA1900

Werttypfelder sollten portabel sein.

CA1901

Deklarationen von P/Invoke müssen portabel sein.

CA2002

Auf Objekten mit schwacher Identität nicht sperren

CA2100

SQL-Abfragen auf Sicherheitsrisiken überprüfen

CA2101

Marshalling für P/Invoke-Zeichenfolgenargumente festlegen

CA2108

Deklarative Sicherheit auf Werttypen überprüfen

CA2111

Zeiger sollten nicht sichtbar sein.

CA2112

Gesicherte Typen sollten keine Felder verfügbar machen.

CA2114

Methodensicherheit sollte Superset des Typs sein

CA2116

APTCA-Methoden sollten nur APTCA-Methoden aufrufen

CA2117

APTCA-Typen sollten nur APTCA-Basistypen erweitern

CA2122

Methoden mit Linkaufrufen nicht indirekt verfügbar machen

CA2123

Überschreibungslinkaufrufe sollten zur Basis identisch sein

CA2124

Anfällige finally-Klauseln mit äußerem try-Block umschließen

CA2126

Typlinkaufrufe erfordern Vererbungsanforderungen

CA2131

Sicherheitsrelevante Typen werden möglicherweise nicht an Typäquivalenz beteiligt

CA2132

Standardkonstruktoren müssen mindestens so kritisch sein wie die Standardkonstruktoren des Basistyps.

CA2133

Delegaten müssen an Methoden mit Transparenz konsistenter binden

CA2134

Methoden müssen konsistente Transparenz halten, während sie Basismethoden überschreiben

CA2137

Transparente Methoden müssen nur überprüfbares IL enthalten

CA2138

Transparente Methoden dürfen Methoden mit dem SuppressUnmanagedCodeSecurity-Attribut nicht aufrufen

CA2140

Transparenter Code darf sicherheitsrelevante Elemente verweisen

CA2141

Transparente Methoden dürfen LinkDemands nicht erfüllen

CA2146

Typen müssen mindestens genauso kritisch sein wie ihre Basistypen und Schnittstellen.

CA2147

Transparente Methoden können nicht Sicherheitsassertions

CA2149

Transparente Methoden dürfen nicht in systemeigenen Code aufrufen

CA2200

Erneut ausführen, um Stapeldetails beizubehalten

CA2202

Objekte nicht mehrmals verwerfen

CA2207

Statische Felder für Werttyp inline initialisieren

CA2212

ServicedComponents nicht mit WebMethod markieren

CA2213

Verwerfbare Felder verwerfen

CA2214

Überschreibbare Methoden in Konstruktoren nicht aufrufen

CA2216

Verwerfbare Typen sollten einen Finalizer deklarieren

CA2220

Finalizer sollten Basisklassen-Finalizer aufrufen

CA2229

Serialisierungskonstruktoren implementieren

CA2231

Überladen Sie den Gleichheitsoperator beim Überschreiben von ValueType.Equals.

CA2232

Windows Forms-Einstiegspunkte mit STAThread markieren

CA2235

Alle nicht serialisierbaren Felder markieren

CA2236

Basisklassenmethoden auf ISerializable-Typen aufrufen

CA2237

ISerializable-Typen mit SerializableAttribute markieren

CA2238

Serialisierungsmethoden korrekt implementieren

CA2240

ISerializable ordnungsgemäß implementieren

CA2241

Geben Sie die korrekte Anzahl für Formatierungsmethoden an.

CA2242

Ordnungsgemäß auf NaN testen