Compartilhar via


Regra de regras de diretrizes de Design ampliada definido para código gerenciado

O conjunto de regras de regras de diretrizes de Design do Microsoft Extended expande as regras de diretriz de design básica para maximizar os problemas de usabilidade e a sustentabilidade são relatados.Ênfase adicional é colocado em diretrizes de nomenclatura.Você deve considerar incluindo esta regra definir se o seu projeto inclui o código da biblioteca ou se você quiser impor os mais altos padrões para escrever código que é fácil de manter.

As regras de diretriz de Design estendidos incluem todas as regras de diretriz de Design básico do Microsoft.As regras básicas de diretriz de Design incluem todas as regras do Microsoft mínimo recomendado.Para obter mais informações, consulte Regra de regras de diretrizes de Design básica definida para código gerenciado eGerenciado regras recomendado conjunto de regras para código gerenciado

A tabela a seguir descreve todas as regras no conjunto de regras de regras de diretrizes de Design do Microsoft estendido.

Regra

Descrição

CA1001

Os tipos que possuem campos descartáveis devem ser descartáveis

CA1009

Declarar os manipuladores de eventos corretamente

CA1016

Assemblies de marca com AssemblyVersionAttribute

CA1033

Métodos de interface devem ser chamados por tipos de filho

CA1049

Os tipos que possuem recursos nativos devem ser descartáveis

CA1060

Mover P/Invokes à classe NativeMethods

CA1061

Não ocultar métodos da classe base

CA1063

Implementar IDisposable corretamente

CA1065

Não aumente exceções em locais inesperados

CA1301

Evite aceleradores duplicados

CA1400

Os pontos de entrada de P/Invoke devem existir.

CA1401

P/Invokes não deverá ser visível

CA1403

Tipos de layout automático não devem ser visível em COM

CA1404

Chamar GetLastError imediatamente após P/Invoke.

CA1405

Tipos base do tipo visível COM devem estar visível em COM

CA1410

Métodos de registro COM devem ser correspondidos.

CA1415

Declarar P/Invokes corretamente

CA1821

Remover os finalizadores vazios

CA1900

Campos do tipo de valor devem ser portátil

CA1901

Declarações P/Invoke devem ser portátil

CA2002

Não bloquear em objetos com identidade fraco

CA2100

Analisar consultas SQL para vulnerabilidades de segurança

CA2101

Especificar o empacotamento para argumentos de seqüência de caracteres de P/Invoke.

CA2108

Revisão de segurança declarativos sobre tipos de valor

CA2111

Ponteiros não deverá ser visíveis

CA2112

Tipos protegidos não devem expor campos

CA2114

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

CA2116

Métodos APTCA só deverá chamar métodos APTCA

CA2117

Tipos APTCA só devem estender tipos básicos de APTCA

CA2122

Não exponha indiretamente métodos com as demandas de link

CA2123

As demandas de link de substituição devem ser idênticas para basear

CA2124

Quebra automática de linha vulnerável finalmente tente cláusulas no exterior

CA2126

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

CA2131

Tipos de críticos de segurança não podem participar de equivalência de tipo

CA2132

Construtores padrão devem ser pelo menos tão importantes como construtores do tipo base padrão

CA2133

Delegados devem ligar para métodos com transparência consistente

CA2134

Métodos devem manter a transparência consistente quando os métodos base

CA2137

Métodos transparentes devem conter apenas IL verificável

CA2138

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

CA2140

Código Transparent não deve fazer referência a itens essenciais de segurança

CA2141

Métodos transparentes não devem atender a LinkDemands

CA2146

Os tipos devem ser pelo menos, tão importantes quanto seus tipos base e interfaces

CA2147

Métodos transparentes não podem usar a segurança asserts

CA2149

Métodos transparentes não devem chamar código nativo

CA2200

Relançar para preservar os detalhes de pilha

CA2202

Não dispor objetos várias vezes

CA2207

Inicializar o tipo de valor campos estáticos in-line

CA2212

Não marque os componentes de serviço com WebMethod

CA2213

Campos descartáveis devem ser descartados.

CA2214

Não chamar métodos substituíveis em construtores

CA2216

Tipos descartáveis devem declarar o finalizador

CA2220

Os finalizadores devem chamar o finalizador da classe base

CA2229

Implementar os construtores de serialização

CA2231

Sobrecarga de operador é igual a sobre a anulação de ValueType.Equals

CA2232

Pontos de entrada da marca Windows Forms com STAThread

CA2235

Marcar todos os campos não serializáveis

CA2236

Chamar métodos da classe base em tipos ISerializable

CA2237

Tipos de ISerializable de marca com o SerializableAttribute

CA2238

Implementar métodos de serialização corretamente

CA2240

Implementa ISerializable corretamente

CA2241

Fornecer argumentos corretos para métodos de formatação.

CA2242

Testar NaN corretamente

CA1000

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

CA1002

Não expõem listas genéricas

CA1003

Usar instâncias do manipulador de evento genérico

CA1004

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

CA1005

Evite os parâmetros de excessivos em tipos genéricos

CA1006

Não se aninham tipos genéricos em assinaturas de membros

CA1007

Use genéricos onde for apropriado

CA1008

Enums devem ter o valor zero

CA1010

Coleções devem implementar a interface genérica

CA1011

Considere passando tipos base como parâmetros

CA1012

Tipos abstratos não devem ter construtores

CA1013

É igual a operador de sobrecarga em sobrecarga, adicionar e subtrair

CA1014

Assemblies de marca com CLSCompliantAttribute

CA1017

Assemblies de marca com ComVisibleAttribute

CA1018

Atributos de marca com AttributeUsageAttribute

CA1019

Definir acessadores para argumentos de atributo

CA1023

Os indexadores não devem ser multidimensionais

CA1024

Use as propriedades onde for apropriado

CA1025

Substitua a matriz params de argumentos repetitivos

CA1026

Parâmetros padrão não devem ser usados.

CA1027

Marcar enums com FlagsAttribute

CA1028

Armazenamento de Enum deve ser Int32

CA1030

Usar eventos onde for apropriado

CA1031

Não capturar os tipos de exceção geral

CA1032

Implementar os construtores de exceção padrão

CA1034

Tipos aninhados não deverá ser visíveis

CA1035

Implementações de ICollection com rigidez de tipos membros

CA1036

Substituir os métodos em tipos comparáveis

CA1038

Enumeradores devem ser fortemente tipados

CA1039

Listas são fortemente tipadas

CA1041

Fornecer ObsoleteAttribute mensagem

CA1043

Use o argumento integral ou seqüência de caracteres para os indexadores

CA1044

Propriedades não devem ser somente gravação

CA1046

Não sobrecarregar o operador equals em tipos de referência

CA1047

Não declarar membros protegidos em tipos lacrados

CA1048

Não declarar membros virtuais em tipos lacrados

CA1050

Declarar tipos em namespaces

CA1051

Não declare campos de instância visível

CA1052

Tipos de portador estático deverá ser lacrados.

CA1053

Tipos de portador estático não devem ter construtores

CA1054

Parâmetros da URI não devem ser seqüências de caracteres

CA1055

URI retornar valores não devem ser seqüências de caracteres

CA1056

Propriedades URI não devem ser seqüências de caracteres

CA1057

Sobrecargas URI de seqüência de caracteres chamada System. URI sobrecargas

CA1058

Tipos não devem estender a determinados tipos de base

CA1059

Os membros não devem expor a determinados tipos de concretos

CA1064

Exceções devem ser públicas

CA1500

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

CA1502

Evitar excessiva complexidade

CA1708

Identificadores devem diferir por mais de caso

CA1716

Identificadores não devem corresponder a palavras-chave

CA1801

Revise os parâmetros não utilizados

CA1804

Remover variáveis locais não utilizados

CA1809

Evite locals excessivas

CA1810

Inicializar embutido de campos estáticos do tipo de referência

CA1811

Evite código particular uncalled

CA1812

Evitar classes internas sem instância

CA1813

Evite atributos sem lacre

CA1814

Preferir irregulares de matrizes multidimensionais

CA1815

É igual a substituição e o operador equals em tipos de valor

CA1819

Propriedades não devem retornar arrays

CA1820

Testar usando o comprimento da seqüência de cadeias de caracteres vazias

CA1822

Membros da marca como static

CA1823

Evite campos particulares não utilizados

CA2201

Não aumente os tipos de exceção reservada

CA2205

Use o gerenciado equivalentes da API do Win32

CA2208

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

CA2211

Campos não constante não deverá ser visíveis

CA2217

Não marque enums com FlagsAttribute

CA2219

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

CA2221

Os finalizadores devem ser protegidos.

CA2222

Não diminuir a visibilidade de membro herdado

CA2223

Os membros devem diferir por tipo de retorno de mais de

CA2224

É igual a substituição na sobrecarga de operador equals

CA2225

Operador sobrecargas nomeou alternativas

CA2226

Os operadores devem ter sobrecargas simétricas

CA2227

Propriedades da coleção devem ser somente leitura

CA2230

Use params para argumentos de variáveis

CA2234

Passar objetos System. URI em vez de seqüências de caracteres

CA2239

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

CA1020

Evitar espaços para nome com alguns tipos

CA1021

Evite os parâmetros de saída

CA1040

Evite interfaces vazios

CA1045

Não passe os tipos por referência

CA1062

Validar os argumentos de métodos públicos

CA1501

Evitar a herança de excessiva

CA1504

Revisar os nomes de campo enganosas

CA1505

Evitar o código não é possível manter

CA1506

Evitar o acoplamento de excessivas de classe

CA1700

Não nomear valores enum "Reservada"

CA1701

Palavras compostas de seqüência de caracteres de recurso devem ser minúsculas corretamente

CA1702

Palavras compostas devem ser minúsculas corretamente

CA1703

Seqüências de recursos devem ser escritas corretamente

CA1704

Identificadores devem ser escritos corretamente

CA1707

Identificadores não devem conter sublinhados

CA1709

Identificadores devem ser minúsculas corretamente

CA1710

Identificadores devem ter o correto sufixo

CA1711

Identificadores não devem ter o sufixo incorreto

CA1712

Prefixo não valores de enum com nome de tipo

CA1713

Eventos não devem ter antes ou depois do prefixo

CA1714

Sinalizadores enums devem ter nomes no plural

CA1715

Identificadores devem ter o prefixo correto

CA1717

Somente os enums FlagsAttribute devem ter nomes no plural

CA1719

Nomes de parâmetro não devem corresponder a nomes de membros

CA1720

Identificadores não devem conter os nomes de tipo

CA1721

Nomes de propriedade não devem corresponder a métodos get

CA1722

Identificadores não devem ter o prefixo incorreto

CA1724

Nomes de tipo não devem corresponder a Namespaces

CA1725

Nomes de parâmetro devem corresponder à declaração de base

CA1726

Termos de uso preferido

CA2204

Literais devem ser escritos corretamente