Sdílet prostřednictvím


Sada pravidel Rozšířená pravidla správnosti pro spravovaný kód

Sada pravidel Microsoft Extended správnosti pravidla maximalizuje logiku a rámcové chyby využití hlášené analýzou kódu.Je zvláštní důraz kladen na konkrétní scénáře spolupráce COM a mobilních aplikací.Měli byste zvážit, včetně tohoto pravidla, pokud jeden z těchto scénářů se vztahuje k projektu nebo najít další problémy v projektu nastavit.

Sada pravidel Microsoft Extended správnosti pravidla obsahuje pravidla, nastavené v pravidle Microsoft základní pravidla správnosti.Základní pravidla správnosti obsahují pravidla, nastavené v pravidle Microsoft Minimální doporučená pravidla.Další informace naleznete v Sada pravidel Základní pravidla správnosti pro spravovaný kód aSada pravidel Spravovaná doporučená pravidla pro spravovaný kód

Následující tabulka popisuje všechna pravidla v sadě Microsoft Extended správnosti pravidla pravidlo.

Pravidlo

Description

CA1001

Typy, které vlastní jednorázových polí by mělo být na jedno použití

CA1009

Správně deklarovat obslužné rutiny událostí

CA1016

Značka sestav s AssemblyVersionAttribute

CA1033

Metody rozhraní by měla být volána skriptem podřízené typy

CA1049

Typy vlastních nativní zdrojů by měly být na jedno použití

CA1060

Přesunout do třídy NativeMethods P/Invokes

CA1061

Nelze skrýt metody základní třídy.

CA1063

Správně implementovat IDisposable

CA1065

Nevyvolávají výjimky v neočekávané umístění

CA1301

Vyhnout se duplicitní akcelerátory

CA1400

Vstupní body P/Invoke by existovat.

CA1401

P/Invokes nemusí být viditelné

CA1403

Typy automatického rozložení nesmí být viditelné COM

CA1404

Volání funkce GetLastError ihned po vyvolání/P

CA1405

Základní typy viditelný typ COM musí být viditelné COM

CA1410

Najít odpovídající registraci metod modelu COM

CA1415

Správně deklarovat P/Invokes

CA1821

Odstranit prázdné finalizačních metod

CA1900

Pole typu hodnota by měla být přenosný

CA1901

P/Invoke prohlášení by mělo být přenosný

CA2002

Zamknout na objekty s identitou slabé

CA2100

Zkontrolujte chyby zabezpečení dotazy SQL

CA2101

Určit zařazování pro řetězcové argumenty P/Invoke.

CA2108

Přezkoumání deklarativní zabezpečení na hodnotu typy

CA2111

Ukazatele nemusí být viditelné

CA2112

Nesmí vystavovat zabezpečené typy polí

CA2114

Metoda zabezpečení by měl být nadmnožinou typu

CA2116

Metody APTCA by pouze volání metod APTCA

CA2117

Typy APTCA by měl rozšířit pouze základní typy APTCA

CA2122

Nepřímo neuvádějí metody s požadavky propojení

CA2123

Přepsat spojení, které by měly být shodné základní požadavky

CA2124

Obtékání ohrožen nakonec klauzulí ve vnější akci

CA2126

Typ propojení požadavků vyžadují dědičnost poptávek

CA2131

Důležité typy zabezpečení není součástí typu rovnocennost

CA2132

Musí být výchozí konstruktory důležité jako základní typ výchozí konstruktory

CA2133

Delegáti musí navázat na metody s konzistentní průhlednost

CA2134

Metody musí zachovat konzistentní průhlednost při přepsání základní metody

CA2137

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

CA2138

Transparentní metody musí nelze volat metody s atributem SuppressUnmanagedCodeSecurity

CA2140

Průhledné kód musí odkazovat není zabezpečení důležité položky

CA2141

Transparentní metody musí splňovat není LinkDemands

CA2146

Typy musí být důležité jako rozhraní a základní typy

CA2147

Transparentní metody nelze použít zabezpečení nepodmíněných výrazů

CA2149

Transparentní metody musí není volání do nativního kódu

CA2200

Rethrow zachovat podrobnosti zásobníku

CA2202

Neodstraňovat několikrát objekty

CA2207

Inicializace vložené statické pole typu hodnota

CA2212

Neoznačovat servisu komponenty s WebMethod

CA2213

Na jedno použití polí by vyřazen.

CA2214

Nevolejte overridable metody konstruktory

CA2216

Typy jednorázových by měla deklarovat finalizačních metod

CA2220

Základní třída finalizačních metod by měla zavolat finalizačních metod

CA2229

Implementovat serializace konstruktory

CA2231

Přetížení operátor rovná se na přepsání ValueType.Equals

CA2232

Značka model Windows Forms vstupní body s STAThread

CA2235

Označit všechna pole není serializovatelný.

CA2236

Typy ISerializable volat metody základní třídy.

CA2237

Typy ISerializable značka s SerializableAttribute

CA2238

Správně implementovat metody serializace

CA2240

Správně implementovat ISerializable

CA2241

Poskytovat správné argumenty metody formátování

CA2242

Test správně NaN

CA1008

Výčty musí mít nulovou hodnotu

CA1013

Rovná se operátor přetížení na přetížení sečíst a odečíst

CA1303

Jako parametry lokalizované neprojde literály

CA1308

Normalizovat řetězce na velká písmena

CA1806

Ignorování výsledky metody

CA1816

Volání GC.Funkce SuppressFinalize správně

CA1819

Vlastnosti by měly nevrací matice

CA1820

Test prázdné řetězce pomocí délka řetězce

CA1903

Použít pouze API z cílový rámec

CA2004

Odeberte volání do GC.Udržení naživu

CA2006

Zapouzdření nativní zdrojů pomocí SafeHandle

CA2102

Zachycení výjimek bez CLSCompliant v obecné obslužné rutiny

CA2104

Čtení pouze proměnlivých referenční typy prohlásí.

CA2105

Pole Array by pouze číst.

CA2106

Zabezpečené nepodmíněných výrazů

CA2115

Volání GC.Udržovací při použití nativních zdrojů

CA2119

Těsnění metod, které vyhovují privátní rozhraní

CA2120

Zabezpečené serializace konstruktory

CA2121

Statické konstruktory by měly být soukromé

CA2130

Zabezpečení důležitých konstant, by měly být průhledné

CA2205

Použití spravovaných ekvivalenty rozhraní Win32 API

CA2215

Metody Dispose by volání dispose základní třídy.

CA2221

Finalizačních metod by měly být chráněny.

CA2222

Viditelnost zděděný člen poklesu.

CA2223

Členové by se lišit o více než návratový typ

CA2224

Rovná se přepsat na přetížení operátor rovná se

CA2226

Operátory by měly mít symetricky přetížení

CA2227

Vlastnosti kolekce by pouze čtení

CA2239

Poskytovat rekonstrukci metody pro volitelné pole

CA1032

Implementace standardní výjimku konstruktory

CA1054

Parametry URI by neměl být řetězce

CA1055

Identifikátor URI vrátit hodnoty by neměl být řetězce

CA1056

Vlastnosti identifikátoru URI by neměl být řetězce

CA1057

Řetězec identifikátoru URI přetížení volat přetížení System.Uri

CA1402

Zabránit přetížení v viditelné rozhraní COM

CA1406

Zamezení Int64 argumenty pro klienty Visual Basic 6

CA1407

Vyhnout se statickým členům v viditelné typy modelu COM

CA1408

Nepoužívejte AutoDual ClassInterfaceType

CA1409

Viditelné typy com by mělo být možné vytvořit

CA1411

Registrace metod modelu COM nemusí být viditelné

CA1412

Označit jako rozhraní IDispatch rozhraní ComSource

CA1413

Nepoužívejte neveřejné pole zobrazena hodnota typů COM

CA1414

Logické argumenty P/Invoke s MarshalAs má označení

CA1600

Nepoužívejte priority Nečinný proces

CA1601

Nepoužívejte časovače, změny stavu napájení

CA1824

Značka sestav s NeutralResourcesLanguageAttribute

CA2001

Zamezení volání metod problematické

CA2003

Považovat tkaniva podprocesů

CA2135

Sestavení úroveň 2 by měla obsahovat LinkDemands

CA2136

Členové by nemělo být konfliktní průhlednost poznámky

CA2139

Atribut HandleProcessCorruptingExceptions nelze použít průhledné metody

CA2142

Průhledné kód by chráněn pomocí LinkDemands

CA2143

Transparentní metody není vhodné používat zabezpečení požadavků

CA2144

Průhledné kód by načíst sestavení z Bajtová pole

CA2145

Transparentní metody by měly není upraven pomocí SuppressUnmanagedCodeSecurityAttribute

CA2204

Literály by měla být zadána správně

CA2211

Konstanta není pole nemusí být viditelné

CA2217

Neoznačovat výčty s FlagsAttribute

CA2218

Přepsat na potlačení se rovná GetHashCode

CA2219

Nevyvolávají výjimky v klauzulích výjimky

CA2225

Operátor přetížení jsou pojmenovány alternativy

CA2228

Nedodávejte nevydané prostředku formáty

CA2230

Použijte parametry pro proměnné argumenty

CA2233

Operace by není přetečení.

CA2234

Průchod System.Uri objekty namísto řetězce

CA2243

Atribut řetězcové literály by správně analyzovat.