Sdílet prostřednictvím


Sada pravidel Spravovaná doporučená pravidla pro spravovaný kód

Sadu pravidel Spravovaná doporučená pravidla společnosti Microsoft lze zacílit na nejdůležitější problémy ve spravovaném kódu, jako jsou potenciální bezpečnostní chyby, pády aplikací a další důležité implementační chyby a chyby v návrh.Tato sada pravidel by měla být obsažena v jakékoli vlastní sadě pravidel, která byla pro projekt vytvořena.

Pravidlo

Popis

CA1001

Typy, které vlastní uvolnitelné pole, by měly být uvolnitelné

CA1009

Deklarujte správně ovladače událostí

CA1016

Označte sestavení pomocí AssemblyVersionAttribute

CA1033

Metody rozhraní by měly jít volat podřízenými typy

CA1049

Typy, které vlastní nativní prostředky, by měly být uvolnitelné

CA1060

Přesuňte volání nespravovaných kódů do třídy NativeMethods

CA1061

Neskrývejte metody základní třídy

CA1063

Implementuje správně rozhraní IDisposable

CA1065

Nevyvolávejte výjimky v neočekávaných umístěních

CA1301

Vyhněte se duplicitním akcelerátorům

CA1400

Vstupní body volání nespravovaného kódu by měly existovat

CA1401

Volání nespravovaných kódů by neměla být viditelná

CA1403

Typy automatického rozložení by neměly být viditelné modelu COM

CA1404

Volejte metodu GetLastError ihned po volání nespravovaného kódu

CA1405

Základní typy viditelného typu modelu COM by měly být viditelné modelu COM

CA1410

Metody registrace modelu COM by si měly odpovídat

CA1415

Deklarujte správně volání nespravovaných kódů

CA1821

Odstraňte prázdné finalizační metody

CA1900

Pole hodnotového typu by měla být přenosná

CA1901

Deklarace volání nespravovaného kódu by měla být přenosná

CA2002

Nepoužívejte zámky na objekty se slabou identitou

CA2100

Zkontrolujte dotazy SQL pro chyby zabezpečení

CA2101

Určete zařazování pro argumenty řetězce volání nespravovaného kódu

CA2108

Zkontrolujte deklarativní zabezpečení na hodnotových typech

CA2111

Ukazatele by neměly být viditelné

CA2112

Zabezpečené typy by neměly vystavovat pole

CA2114

Zabezpečení metody by mělo být nadmnožinou typu

CA2116

Metody APTCA by měly volat pouze metody APTCA

CA2117

Typy APTCA by měly rozšiřovat pouze základní typy APTCA

CA2122

Nezveřejňujte nepřímo metody s požadavky propojení

CA2123

Požadavky odkazu přepisu by měly být shodné se základem

CA2124

Zabalte ohrožené klauzule finally do vnějšího bloku try

CA2126

Požadavky propojení typů vyžadují požadavky dědičnosti

CA2131

Důležité typy zabezpečení se nemusí účastnit rovnocennosti typu

CA2132

Výchozí konstruktory musí být alespoň tak kritické jako výchozí konstruktory základního typu

CA2133

Delegáti musí navázat na metody s konzistentní transparentností

CA2134

Metody musí při přepisu základních metod zachovat konzistentní transparentnost

CA2137

Transparentní metody musí obsahovat pouze ověřitelné IL

CA2138

Transparentní metody nesmí volat metody s atributem SuppressUnmanagedCodeSecurity

CA2140

Transparentní kód nesmí odkazovat na důležité položky zabezpečení

CA2141

Transparentní metody nesmí splňovat LinkDemands

CA2146

Typy musí být alespoň tak kritické jako jejich rozhraní a základní typy

CA2147

Transparentní metody nemohou používat bezpečnostní vyhodnocení

CA2149

Transparentní metody nesmí volat do nativního kódu

CA2200

Znovu vyvolejte pro zachování podrobností zásobníku

CA2202

Neuvolňujte objekty několikrát

CA2207

Statická pole hodnotového typu inicializujte vloženým kódem

CA2212

Neoznačujte obsluhované komponenty pomocí WebMethod

CA2213

Uvolnitelná pole by měla být uvolněna

CA2214

Nevolejte přepisovatelné metody v konstruktorech

CA2216

Uvolnitelné typy by měly deklarovat finalizační metodu

CA2220

Finalizační metody by měly volat finalizační metodu základní třídy

CA2229

Implementujte konstruktory serializace

CA2231

Je třeba přetížit operátor rovnosti při přetížení ValueType.Equals

CA2232

Označte vstupní body modelu Windows Forms pomocí STAThread

CA2235

Označte všechna neserializovatelná pole

CA2236

Volejte metody základní třídy na typech ISerializable

CA2237

Označte typy ISerializable pomocí SerializableAttribute

CA2238

Implementujte správně metody serializace

CA2240

Implementujte správně rozhraní ISerializable

CA2241

Poskytněte správné argumenty metodám formátování

CA2242

Testujte správně hodnotu NaN