Partilhar via


Conjunto de regras de diretrizes do design estendido para código gerenciado

O conjunto estendido a Microsoft na regra das regras de diretrizes de design expande nas regras de diretrizes de design básico para maximizar os problemas de usabilidade e de manutenibilidade que são relatados.Dar ênfase adicional é colocada na nomeação diretrizes.Você deve considerar incluir esta regra definida como se o seu projeto inclui o código de biblioteca ou se você deseja impor os padrões mais altos para escrever um código que é fácil de manter.

As regras estendidos de diretrizes de design inclui todas as regras de diretrizes de design básico da Microsoft.As regras de diretrizes de design básico inclui todas as regras recomendadas mínimo da Microsoft.Para obter mais informações, consulte Conjunto de regras de diretriz do design básico para código gerenciado e Conjunto de regras recomendadas gerenciado para código gerenciado

A tabela a seguir descreve todas as regras em conjunto estendido a Microsoft na regra das regras de diretrizes de design.

Regra

Descrição

CA1001

Tipos que possui campos descartáveis deve ser descartável

CA1009

Declare manipuladores de eventos corretamente

CA1016

Marcar os assemblies com AssemblyVersionAttribute

CA1033

Os métodos da interface devem estar acessíveis por tipos de filho

CA1049

Tipos que possui recursos nativos deve ser descartável

CA1060

Mover P/Invokes à classe de NativeMethods

CA1061

Não ocultar métodos da classe base

CA1063

Implemente corretamente IDisposable

CA1065

Não digite as exceções em locais inesperados

CA1301

Evite aceleradores duplicados

CA1400

Os pontos de entrada de P/Invoke devem existir

CA1401

P/Invokes não deve ser visível

CA1403

Os tipos de layout automático não deve ser visível COM

CA1404

Chame GetLastError imediatamente depois de P/Invoke

CA1405

Os tipos de base visíveis de tipo COM o devem ser visível COM

CA1410

Os métodos de registro COM o devem ser correspondidos

CA1415

Declare P/Invokes corretamente

CA1821

Remova os finalizers vazias

CA1900

Os campos do tipo de valor devem ser portáteis

CA1901

As declarações de P/Invoke devem ser portáteis

CA2002

Não bloqueie em objetos de identidade fraco

CA2100

Revise consultas SQL para vulnerabilidades de segurança

CA2101

Especifique que o marshaling para argumentos de cadeia de caracteres de P/Invoke

CA2108

Segurança declarativa revisão em tipos de valor

CA2111

Os ponteiros não devem ser visíveis

CA2112

Os tipos não seguros deve expor campos

CA2114

A segurança do método deve ser um superconjunto do tipo

CA2116

Os métodos de APTCA só devem chamar métodos de APTCA

CA2117

Os tipos de APTCA só devem estender tipos de base de APTCA

CA2122

Não expõe métodos indiretamente com as demandas de link

CA2123

As demandas do link de substituição devem ser idênticas com base

CA2124

Cláusulas vulneráveis de quebra automática finalmente tente externa

CA2126

As demandas do link do tipo exigem demandas de herança

CA2131

Os tipos críticos de segurança não podem participar da equivalência do tipo

CA2132

Os construtores padrão devem ser pelo menos críticos quanto construtores padrão do tipo de base

CA2133

O delega devem associar a transparência consistente com métodos

CA2134

Os métodos devem manter a transparência consistente ao substituir métodos de base

CA2137

Os métodos transparentes devem conter apenas o IL verificável

CA2138

Os métodos transparentes não devem chamar métodos com o atributo de SuppressUnmanagedCodeSecurity

CA2140

O código transparente não deve referenciar itens críticos de segurança

CA2141

Os métodos transparentes não devem satisfazer LinkDemands

CA2146

Os tipos devem ser pelo menos críticos quanto os tipos de base e interfaces

CA2147

Os métodos transparentes não podem usar segurança afirmam

CA2149

Os métodos transparentes não devem chamar em código nativo

CA2200

Lançar novamente para preservar detalhes da pilha

CA2202

Não remove objetos várias vezes

CA2207

Inicializar os campos estáticos de tipo de valor de tabela embutida

CA2212

Não marque componentes atendidos com WebMethod

CA2213

Os campos descartáveis devem ser removidos

CA2214

Não chame métodos overridable nos construtores

CA2216

Os tipos descartáveis devem declarar o finalizador

CA2220

Finalizers deve chamar o finalizador da classe base

CA2229

Construtores de serialização de ferramentas

CA2231

Operador de igual de sobrecarga em substituir ValueType.Equals

CA2232

Pontos de entrada do Windows Forms de marca a STAThread

CA2235

Marcar todos os campos não serializáveis

CA2236

Chamar métodos da classe base em tipos de ISerializable

CA2237

Marcar tipos de ISerializable com SerializableAttribute

CA2238

Implementar os métodos de serialização corretamente

CA2240

Implementar ISerializable corretamente

CA2241

Forneça argumentos corretos para formatação métodos

CA2242

Teste para NaN corretamente

CA1000

Não declarar membros estáticos em tipos genéricos

CA1002

Não expõe listas genéricas

CA1003

Use instâncias genéricas do manipulador de eventos

CA1004

Os métodos genéricos devem fornecer o parâmetro de tipo

CA1005

Evite parâmetros em excesso em tipos genéricos

CA1006

Aninhar não genérico em assinaturas de membro

CA1007

Use produtos genéricas onde apropriado

CA1008

Os enum devem ter o valor zero

CA1010

As coleções devem implementar a interface genérica

CA1011

Considere passar tipos de base como parâmetros

CA1012

Os tipos de sumário não devem ter construtores

CA1013

Carga do operador que equivale ao sobrecarregamento adicionam e subtraia-o

CA1014

Assemblies de marca a CLSCompliantAttribute

CA1017

Assemblies de marca a ComVisibleAttribute

CA1018

Atributos de marca a AttributeUsageAttribute

CA1019

Defina acessadores para argumentos de atributo

CA1023

Os indicadores não devem ser multidimensionais

CA1024

Use as propriedades onde apropriado

CA1025

Substitua os argumentos e repetitivos com a matriz de param

CA1026

Os parâmetros padrão não devem ser usados

CA1027

Enum de marca a FlagsAttribute

CA1028

O armazenamento de enum deve ser Int32

CA1030

Use eventos quando apropriado

CA1031

Não capturar tipos de exceções gerais

CA1032

Implementar construtores padrão de exceção

CA1034

Os tipos aninhados não devem ser visíveis

CA1035

As implementações de ICollection digitaram altamente membros

CA1036

Métodos de substituição em tipos comparáveis

CA1038

Os enumeradores devem estar fortemente tipado

CA1039

Listas são digitadas altamente

CA1041

Fornecer a mensagem de ObsoleteAttribute

CA1043

Use a integral ou cadeia de caracteres do argumento para indicadores

CA1044

As propriedades não devem ser somente gravação

CA1046

Não iguais carga do operador em tipos de referência

CA1047

Não declarar membros protegidos em tipos selados

CA1048

Não declarar membros virtuais em tipos selados

CA1050

Declare namespaces em

CA1051

Não declarar campos visíveis da instância

CA1052

Os tipos estáticos de suporte devem ser selados

CA1053

Os tipos estáticos de suporte não devem ter construtores

CA1054

Os parâmetros de URI não devem ser cadeias de caracteres

CA1055

Os valores de retorno de URI não devem ser cadeias de caracteres

CA1056

As propriedades do URI não devem ser cadeias de caracteres

CA1057

As sobrecargas do URI de cadeia de caracteres chamam sobrecargas de System.Uri

CA1058

Os tipos não devem estender determinados tipos de base

CA1059

Os membros não deve expor determinados tipos concretos

CA1064

As exceções devem ser públicas

CA1500

Nomes de variáveis não devem corresponder aos nomes de campo

CA1502

Evite a complexidade excessiva

CA1708

Os identificadores devem ser diferentes por mais de casos

CA1716

Os identificadores não devem corresponder a palavra-chave

CA1801

Parâmetros não usada de revisão

CA1804

Remova os locais não usado

CA1809

Evite locais em excesso

CA1810

Inicializar os campos estáticos do tipo de referência embutida

CA1811

Evite código privado uncalled

CA1812

Evite ajustar uninstantiated classes internas

CA1813

Evite ajustar unsealed atributos

CA1814

Prefer entalhou matrizes sobre multidimensional

CA1815

Igual a substituição e iguais do operador em tipos de valor

CA1819

As propriedades não devem retornar matrizes

CA1820

Teste para cadeias de caracteres vazias usando o comprimento da cadeia de caracteres

CA1822

Membros da marca como estático

CA1823

Evite campos particulares não usado

CA2201

Não digite tipos de exceção permitidos

CA2205

Use equivalentes gerenciados da API do Win32

CA2208

Criar uma instância do argumento exceções corretamente

CA2211

Os campos de não constante não devem ser visíveis

CA2217

Não marque enum com FlagsAttribute

CA2219

Não digite as exceções em cláusulas de exceção

CA2221

Finalizers deve ser protegido

CA2222

Não diminuir a visibilidade herdada do membro

CA2223

Os membros precisarem ser diferentes por mais do que o tipo de retorno

CA2224

Iguais de substituição em sobrecarregar iguais do operador

CA2225

As sobrecargas do operador denominado substituições

CA2226

Os operadores devem ter sobrecargas simétricas

CA2227

As propriedades da coleção devem ser somente leitura

CA2230

Param use para argumentos variáveis

CA2234

Objetos de passagem System.Uri em vez de cadeias de caracteres

CA2239

Fornecer métodos de desserialização para campos opcionais

CA1020

Evite namespaces com poucos tipos

CA1021

Evite parâmetros out

CA1040

Evite interfaces vazias

CA1045

Não passar tipos por referência

CA1062

Validar argumentos de métodos públicos

CA1501

Evite a herança excessiva

CA1504

Revise nomes de campo enganadores

CA1505

Evite o código unmaintainable

CA1506

Evite o envolvimento excessivo da classe

CA1700

Não nomeie os valores enum” reservadas

CA1701

As palavras compostas de cadeia de caracteres de recurso deve ser encaixotadas corretamente

CA1702

As palavras compostas devem ser encaixotadas corretamente

CA1703

As cadeias de caracteres de recurso deve ser estar escrito corretamente

CA1704

Os identificadores devem estar correta

CA1707

Os identificadores não devem conter sublinhados

CA1709

Os identificadores devem ser corretamente boxed

CA1710

Os identificadores devem ter o sufixo correto

CA1711

Os identificadores não devem ter o sufixo incorreto

CA1712

Não coloque prefixo valores enum com o nome do tipo

CA1713

Os eventos não devem ter antes ou depois do prefixo

CA1714

Enum dos sinalizadores devem ter nomes plural

CA1715

Os identificadores devem ter o prefixo correto

CA1717

Somente os enum de FlagsAttribute devem ter nomes plural

CA1719

Os nomes de parâmetro não devem corresponder aos nomes de membros

CA1720

Os identificadores não devem conter nomes de tipo

CA1721

Os nomes de propriedade não devem corresponder ao obter métodos

CA1722

Os identificadores não devem ter o prefixo incorreto

CA1724

Os nomes de tipo não devem corresponder aos namespaces

CA1725

Os nomes de parâmetros devem corresponder à declaração de base

CA1726

Usar termos preferencial

CA2204

Literais devem ser correta