Partilhar via


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

  1. No menu de Arquivo de Visual Studio, clique em Novo e clique em Projeto.

  2. Na caixa de diálogo de Novo Projeto , em Tipos de projeto, clique em Visual # C.

  3. Em Modelos, Biblioteca de Classesselecione.

  4. Na caixa de texto de Nome , o tipo CodeAnalysisManagedDemo e clique em OK.

  5. Depois que o projeto é criado, abra o arquivo de Class1.cs.

  6. Substitua o texto existente em Class1.cs pelo seguinte código:

    //CodeAnalysisManagedDemo
    //Class1.cs
    using System;
    namespace testCode
    {
        
        public class demo : Exception
        {
            
            public static void Initialize(int size) { }
            protected static readonly int _item;
            public static int item { get { return _item; } }
        }
    }
  7. Salve o arquivo de Class1.cs.

Analisar o projeto

Para analisar um projeto de código gerenciado para falhas

  1. Selecione o projeto de CodeAnalysisManagedDemo em Gerenciador de Soluções.

  2. No menu Projeto, clique em Propriedades.

    A página de propriedades de CodeAnalysisManagedDemo é exibida.

  3. Clique em CódigoAnálise.

  4. Certifique-se de que Habilitar Codificar a análise na construção (define a constante de CODE_ANALYSIS) é verificado.

  5. Na lista suspensa de Executar este conjunto de regras , Todas as Regras da Microsoftselecione.

  6. No menu de Arquivo , clique Salvar itens selecionados, e feche as páginas de propriedades de ManagedDemo.

  7. 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

  1. 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.

  2. Em Gerenciador de Soluções, clique Mostrar todos os arquivos.

  3. Em seguida, expanda o nó das propriedades, e abra o arquivo de AssemblyInfo.cs.

  4. 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.

  1. Adicionar código usingSystem; no arquivo de AssemblyInfo.cs.

  2. Em seguida, adicione o código [assembly: CLSCompliant(true)] ao final do arquivo de AssemblyInfo.cs.

  3. Crie o projeto.

CA1032: implementar construtores de exceção padrão: Microsoft.Design: Adicione o seguinte ao construtor essa classe: demonstração pública (cadeia de caracteres)

  • Adicionar o construtor public demo (String s) : base(s) { } a classe demo.

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)

  • Adicionar o construtor public demo (String s, Exception e) : base(s, e) { } a classe demo.

CA1032: implementar construtores de exceção padrão: Microsoft.Design: Adicione o seguinte ao construtor essa classe: demonstração protegida (SerializationInfo, StreamingContext)

  1. Adicionar código using System.Runtime.Serialization; ao início do arquivo de Class1.cs.

  2. Em seguida, adicione o construtor protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } to the class demo.

  3. Crie o projeto.

CA1032: implementar construtores de exceção padrão: Microsoft.Design: Adicione o seguinte ao construtor essa classe: demonstração pública ()

  1. Adicionar o construtor public demo () : base() { } a classe demo.

  2. Crie o projeto.

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”.

  • Alterar o uso de maiúsculas e minúsculas do namespace testCode a 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”.

  • Alterar o nome do membro a Demo.

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 “”.

  • Alterar o nome do membro a Item.

CA1710: os identificadores devem ter o sufixo correto: Microsoft.Naming: Renomear “testCode.demo” para terminar na “exceção.

  • Alterar o nome da classe e seus construtores a DemoException.

CA2210: os assemblies devem ter nomes fortes válidos: Assinar “ManagedDemo” com uma chave de nome forte.

  1. No menu de Projeto , clique em Propriedades de ManagedDemo.

    As propriedades de projeto aparecem.

  2. Clique em Assinando.

  3. Marque a caixa de seleção Sign the assembly.

  4. Na lista de Escolha um arquivo de chave de nome da cadeia de caracteres , <Novo…>selecione.

    A caixa de diálogo de Criar Chave de Nome Forte é exibida.

  5. Em Nome de arquivo de chave, digite TestKey.

  6. Digite uma senha e clique em OK.

  7. No menu de Arquivo , clique Salvar itens selecionados, e feche as páginas de propriedades.

  8. Crie o projeto.

CA2237: marcar tipos ISerializable com SerializableAttribute: Microsoft.Usage: Adicione o atributo [serializable] “no tipo de demonstração” como este tipo implementa ISerializable.

  1. Adicione o atributo à classe de [Serializable ()]demo.

  2. Crie o projeto.

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

  1. Para cada um dos avisos restantes, faça o seguinte:

    1. Na janela de análise de código, selecione o aviso.

    2. 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

  2. Crie o projeto.

    Compila o projeto sem os avisos ou erros.