Partilhar via


Conjunto de regras de correção estendido para código gerenciado

O conjunto estendido a Microsoft na regra das regras de correção maximiza os erros de uso da lógica e da estrutura que são relatados pela análise de código.Dar ênfase adicional é colocada em cenários específicos como aplicativos de interoperabilidade desconectados e do COM.Você deve considerar incluir esta regra definida se um desses cenários se aplica ao seu projeto ou encontrar problemas adicionais no projeto.

O conjunto estendido a Microsoft na regra das regras de correção inclui as regras que estão no conjunto básico da regra das regras de correção da Microsoft.As regras básicas de exatidão incluem regras que estão no conjunto mínimo recomendado da regra das regras da Microsoft.Para obter mais informações Conjunto de regras de correção 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 correção.

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

CA1008

Os enum devem ter o valor zero

CA1013

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

CA1303

Não transmita literais como parâmetros localizados

CA1308

Normalização cadeias de caracteres para letras maiúsculas

CA1806

Não ignore resultados do método

CA1816

Chame GC.SuppressFinalize corretamente

CA1819

As propriedades não devem retornar matrizes

CA1820

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

CA1903

Use apenas a API da estrutura de destino

CA2004

Remover chamadas a GC.KeepAlive

CA2006

Use SafeHandle para encapsular recursos nativos

CA2102

Exceções non-CLSCompliant de captura em manipuladores gerais

CA2104

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

CA2105

Os campos de matriz não devem ser somente leitura

CA2106

Afirma Seguro

CA2115

Chame GC.KeepAlive ao usar recursos nativos

CA2119

Métodos do selo que satisfazem interfaces privadas

CA2120

Construtores de serialização seguros

CA2121

Os construtores estáticos devem ser privados

CA2130

As constantes críticos de segurança devem ser transparentes

CA2205

Use equivalentes gerenciados da API do Win32

CA2215

Disponha métodos deve chamar a classe base descartado

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

CA2226

Os operadores devem ter sobrecargas simétricas

CA2227

As propriedades da coleção devem ser somente leitura

CA2239

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

CA1032

Implementar construtores padrão de exceção

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

CA1402

Evite sobrecargas visíveis em interfaces COM

CA1406

Evite os argumentos Int64 para clientes do Visual Basic 6

CA1407

Evite membros estáticos em tipos visíveis COM

CA1408

Não use AutoDual ClassInterfaceType

CA1409

Os tipos de visíveis COM o devem ser creatable

CA1411

Os métodos de registro COM não devem ser visíveis

CA1412

Interfaces de ComSource da marca como IDispatch

CA1413

Evite campos de não utilitário em tipos de valores visíveis COM

CA1414

Marcar argumentos boolianos de P/Invoke com MarshalAs

CA1600

Não use a prioridade de ociosidade de processo

CA1601

Não use os timers que impeçam alterações de estado do poder

CA1824

Marcar os assemblies com NeutralResourcesLanguageAttribute

CA2001

Evite chamar métodos problemáticos

CA2003

Não tratar fibras como threads

CA2135

Os assemblies de nível 2 não devem conter LinkDemands

CA2136

Os membros não devem ter conflitantes anotações de transparência

CA2139

Os métodos transparentes não podem usar o atributo de HandleProcessCorruptingExceptions

CA2142

O código transparente não deve ser protegido com LinkDemands

CA2143

Os métodos transparentes não devem usar as demandas de segurança

CA2144

O código transparente não deve carregar os assemblies das matrizes de bytes

CA2145

Os métodos transparentes não devem ser decorados com o SuppressUnmanagedCodeSecurityAttribute

CA2204

Literais devem ser correta

CA2211

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

CA2217

Não marque enum com FlagsAttribute

CA2218

Substituir GetHashCode em substituir iguais

CA2219

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

CA2225

As sobrecargas do operador denominado substituições

CA2228

Não enviar formatos não-editados de recursos

CA2230

Param use para argumentos variáveis

CA2233

As operações não devem transbordar

CA2234

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

CA2243

Literais de atributo devem analisar corretamente