Instruções passo a passo: analisando código gerenciado em busca de defeitos de código
Neste passo a passo, você analisa um projeto de código gerenciado para falhas usando a ferramenta análise de código.
Este passo a passo pisará você pelo processo de usar a análise de código para analisar seus assemblies de código gerenciado .NET para conformidade com as diretrizes de design do Microsoft .NET framework.
Neste passo a passo, você:
- Analise e corrija avisos de defeito de código.
Pré-requisitos
- Visual Studio Premium.
Crie uma biblioteca de classe
Para criar uma biblioteca de classe |
|
Analisar o projeto
Para analisar um projeto de código gerenciado para falhas
Selecione o projeto de CodeAnalysisManagedDemo em Gerenciador de Soluções.
No menu Projeto, clique em Propriedades.
A página de propriedades de CodeAnalysisManagedDemo é exibida.
Clique em CódigoAnálise.
Certifique-se de que Habilitar Codificar a análise na construção (define a constante de CODE_ANALYSIS) é verificado.
Na lista suspensa de Executar este conjunto de regras , Todas as Regras da Microsoftselecione.
No menu de Arquivo , clique Salvar itens selecionados, e feche as páginas de propriedades de ManagedDemo.
No menu de Compilar , clique em Construção ManagedDemo.
Os avisos de construção do projeto de CodeAnalysisManagedDemo são relatados no windows de Análise de Código e de Saída .
Se a janela de Análise de Código não aparecer, no menu de Analisar , escolha Janelas e depois escolha a análise de código.
Corrija os problemas de análise de código
Para corrigir violações da regra de análise de código
No menu de Exibir , clique em Lista de Erros.
Dependendo do perfil do desenvolvedor que você escolheu, você pode ter que aponte para Outras Janelas no menu de Exibir , e clique em Lista de Erros.
Em Gerenciador de Soluções, clique Mostrar todos os arquivos.
Em seguida, expanda o nó das propriedades, e abra o arquivo de AssemblyInfo.cs.
Use a tabela a seguir para corrigir avisos:
Avisos |
Para o aviso correto |
---|---|
CA1014: marcar assemblies com CLSCompliantAttribute: Microsoft.Design: a “demonstração” deve ser marcada com o CLSCompliantAttribute, e seu valor deve ser verdadeiro. |
|
CA1032: implementar construtores de exceção padrão: Microsoft.Design: Adicione o seguinte ao construtor essa classe: demonstração pública (cadeia de caracteres) |
|
CA1032: implementar construtores de exceção padrão: Microsoft.Design: Adicione o seguinte ao construtor essa classe: demonstração pública (cadeia de caracteres, exceção) |
|
CA1032: implementar construtores de exceção padrão: Microsoft.Design: Adicione o seguinte ao construtor essa classe: demonstração protegida (SerializationInfo, StreamingContext) |
|
CA1032: implementar construtores de exceção padrão: Microsoft.Design: Adicione o seguinte ao construtor essa classe: demonstração pública () |
|
CA1709: os identificadores do recurso devem ter maiúsculas e minúsculas corretas: Microsoft.Naming: Corrija o uso de maiúsculas e minúsculas do nome “testCode” de namespace alterarem “TestCode”. |
|
CA1709: os identificadores do recurso devem ter maiúsculas e minúsculas corretas: Microsoft.Naming: Corrija o uso de maiúsculas e minúsculas do nome “demonstração” do tipo alterando à “demonstração”. |
|
CA1709: os identificadores do recurso devem ter maiúsculas e minúsculas corretas: Microsoft.Naming: Corrija o uso de maiúsculas e minúsculas do nome “item” do membro alterando ao item “”. |
|
CA1710: os identificadores devem ter o sufixo correto: Microsoft.Naming: Renomear “testCode.demo” para terminar na “exceção. |
|
CA2210: os assemblies devem ter nomes fortes válidos: Assinar “ManagedDemo” com uma chave de nome forte. |
|
CA2237: marcar tipos ISerializable com SerializableAttribute: Microsoft.Usage: Adicione o atributo [serializable] “no tipo de demonstração” como este tipo implementa ISerializable. |
|
Depois de concluir as alterações, o arquivo de Class1.cs deve ter esta aparência:
//CodeAnalysisManagedDemo
//Class1.cs
using System;
using System.Runtime.Serialization;
namespace TestCode
{
[Serializable()]
public class DemoException : Exception
{
public DemoException () : base() { }
public DemoException(String s) : base(s) { }
public DemoException(String s, Exception e) : base(s, e) { }
protected DemoException(SerializationInfo info, StreamingContext context) : base(info, context) { }
public static void Initialize(int size) { }
protected static readonly int _item;
public static int Item { get { return _item; } }
}
}
Exclua avisos de análise de código
Para excluir avisos de defeito de código
Para cada um dos avisos restantes, faça o seguinte:
Na janela de análise de código, selecione o aviso.
Escolha Ações, então, escolha Suprimir Mensageme escolha Na exclusão Arquivo de projeto.
Para obter mais informações, consulte Como suprimir avisos usando o item de menu
Crie o projeto.
Compila o projeto sem os avisos ou erros.