Compartilhar via


Regra básica de correção de regras definidas para código gerenciado

O conjunto de regras de regras básicas de correção enfoca os erros lógicos e erros comuns do uso de APIs de framework.As regras básicas de correção incluem as regras no conjunto de regras do mínimo recomendado regras.Para obter mais informações, consulte Gerenciado regras recomendado conjunto de regras para código gerenciado você deve incluir essa regra definida para expandir a lista de avisos que o mínimo recomendado de relatório de regras.

A tabela a seguir descreve todas as regras no conjunto de regras de regras de correção básicas da Microsoft.

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

CA1008

Enums devem ter o valor zero

CA1013

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

CA1303

Não passe os literais como parâmetros localizados

CA1308

Normalizar seqüências de caracteres em maiúsculas

CA1806

Não ignore os resultados do método

CA1816

Chama GC.SuppressFinalize corretamente

CA1819

Propriedades não devem retornar arrays

CA1820

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

CA1903

Usar somente a API do framework de destino

CA2004

Remova chamadas para GC.Manutenção de atividade

CA2006

Usar o SafeHandle para encapsular os recursos nativos

CA2102

Capturar exceções de não-CLSCompliant nos manipuladores gerais

CA2104

Não declarar tipos de referência mutáveis somente leitura

CA2105

Campos de matriz não devem ser lidos apenas

CA2106

Declarações de seguro

CA2115

Chama GC.Ao usar os recursos nativos de KeepAlive

CA2119

Métodos de selo que satisfaçam às interfaces privadas

CA2120

Construtores de serialização seguro

CA2121

Construtores estáticos devem ser particulares

CA2130

Constantes críticas de segurança devem ser transparentes

CA2205

Use o gerenciado equivalentes da API do Win32

CA2215

Métodos Dispose devem chamar dispose de classe base

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

CA2226

Os operadores devem ter sobrecargas simétricas

CA2227

Propriedades da coleção devem ser somente leitura

CA2239

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