Condividi tramite


Procedura dettagliata: analisi del codice gestito per l'identificazione di errori del codice

In questa procedura dettagliata verrà analizzato un progetto gestito per identificare gli errori del codice mediante lo strumento di analisi del codice.

Verrà descritto in modo dettagliato l'utilizzo dell'analisi del codice per analizzare gli assembly del codice gestito .NET con l'obiettivo di verificarne la conformità alle linee guida per la progettazione di Microsoft .NET Framework.

Questa procedura dettagliata consente di:

  • Analizzare e correggere gli avvisi relativi agli errori del codice.

Prerequisiti

  • Visual Studio Premium.

Creare una libreria di classi

Per creare una libreria di classi

  1. Nel menu File di Visual Studio scegliere Nuovo, quindi Progetto.

  2. Nella finestra di dialogo Nuovo progetto fare clic su Visual C# in Tipi di progetto.

  3. Selezionare Libreria di classi in Modelli.

  4. Nella casella di testo Nome digitare CodeAnalysisManagedDemo e quindi fare clic su OK.

  5. Dopo aver creato il progetto, aprire il file Class1.cs.

  6. Sostituire il testo esistente nel file Class1.cs con il codice seguente:

    //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. Salvare il file Class1.cs.

Analizzare il progetto

Per analizzare un progetto gestito per identificare gli errori del codice

  1. Selezionare il progetto CodeAnalysisManagedDemo in Esplora soluzioni.

  2. Scegliere Proprietà dal menu Progetto.

    Verrà visualizzata la pagina delle proprietà di CodeAnalysisManagedDemo.

  3. Fare clic su Analisicodice.

  4. Assicurarsi che Abilita Analisi codice in fase di compilazione (definisce la costante CODE_ANALYSIS) sia selezionato.

  5. Dall'elenco a discesa Esegui set di regole selezionare Tutte le regole Microsoft.

  6. Scegliere Salva elementi selezionati dal menu File, quindi chiudere la pagina delle proprietà ManagedDemo.

  7. Scegliere Compila ManagedDemo dal menu Compila.

    Gli avvisi della compilazione del progetto CodeAnalysisManagedDemo sono indicati nelle finestre Analisi del Codice e Output.

    Se la finestra Analisi codice non viene visualizzata, dal menu Analizza, scegliere Windows quindi seleziona Analisi codice.

Correggere i problemi relativi all'analisi del codice

Per correggere le violazioni alle regole di analisi del codice

  1. Scegliere Elenco errori dal menu Visualizza.

    In base al profilo dello sviluppatore scelto, potrebbe essere necessario selezionare Altre finestre dal menu Visualizza, quindi fare clic su Elenco errori.

  2. In Esplora soluzioni, scegliere Mostra tutti i file.

  3. Espandere quindi il nodo Proprietà e aprire il file AssemblyInfo.cs.

  4. Utilizzare la tabella riportata di seguito per correggere gli avvisi:

Avvisi

Per correggere l'avviso

CA1014: Contrassegnare gli assembly con CLSCompliantAttribute: Microsoft.Design: 'demo' deve essere contrassegnato con CLSCompliantAttribute con valore true.

  1. Aggiungere il codice usingSystem; al file AssemblyInfo.cs.

  2. Aggiungere quindi il codice [assembly: CLSCompliant(true)] alla fine del file AssemblyInfo.cs.

  3. Ricompilare il progetto.

CA1032: Implementare costruttori di eccezioni standard: Microsoft.Design: Aggiungere il seguente costruttore a questa classe: public demo(String)

  • Aggiungere il costruttore public demo (String s) : base(s) { } alla classe demo.

CA1032: Implementare costruttori di eccezioni standard: Microsoft.Design: Aggiungere il seguente costruttore a questa classe: public demo(String, Exception)

  • Aggiungere il costruttore public demo (String s, Exception e) : base(s, e) { } alla classe demo.

CA1032: Implementare costruttori di eccezioni standard: Microsoft.Design: Aggiungere il seguente costruttore a questa classe: protected demo(SerializationInfo, StreamingContext)

  1. Aggiungere il codice using System.Runtime.Serialization; all'inizio del file Class1.cs.

  2. Aggiungere quindi il costruttore protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } to the class demo.

  3. Ricompilare il progetto.

CA1032: Implementare costruttori di eccezioni standard: Microsoft.Design: Aggiungere il seguente costruttore a questa classe: public demo()

  1. Aggiungere il costruttore public demo () : base() { } alla classe demo.

  2. Ricompilare il progetto.

CA1709: Gli identificatori devono essere digitati correttamente con distinzione tra maiuscole e minuscole: Microsoft.Naming: correggere le maiuscole e minuscole nello spazio dei nomi 'testCode' modificandolo in 'TestCode'.

  • Modificare le maiuscole e minuscole dello spazio dei nomi testCode in TestCode.

CA1709: Gli identificatori devono essere digitati correttamente con distinzione tra maiuscole e minuscole: Microsoft.Naming: correggere le maiuscole e minuscole nel nome del tipo 'demo' modificandolo in 'Demo'.

  • Modificare il nome del membro in Demo.

CA1709: Gli identificatori devono essere digitati correttamente con distinzione tra maiuscole e minuscole: Microsoft.Naming: correggere le maiuscole e minuscole nel nome del membro 'item' modificandolo in 'Item'.

  • Modificare il nome del membro in Item.

CA1710: Gli identificatori devono contenere il suffisso corretto: Microsoft.Naming: Rinominare 'testCode.demo' in modo che termini in 'Exception'.

  • Modificare il nome della classe e i relativi costruttori in DemoException.

CA2210: Gli assembly devono avere nomi sicuri validi: Firmare 'ManagedDemo' con una chiave con nome sicuro.

  1. Scegliere Proprietà ManagedDemo dal menu Progetto.

    Verrà visualizzata la finestra delle proprietà del progetto.

  2. Fare clic su Firma.

  3. Selezionare la casella di controllo Firma assembly.

  4. Nell'elenco Scegli un file chiave con nome sicuro selezionare <Nuovo...>.

    Verrà visualizzata la finestra di dialogo Crea chiave con nome sicuro.

  5. In Nome file di chiave digitare TestKey.

  6. Immettere una password, quindi fare clic su OK.

  7. Scegliere Salva elementi selezionati dal menu File, quindi chiudere la pagina delle proprietà.

  8. Ricompilare il progetto.

CA2237: Contrassegnare i tipi ISerializable con SerializableAttribute: Microsoft.Usage: Aggiungere [Serializable] a 'demo' poiché questo tipo implementa ISerializable.

  1. Aggiungere l'attributo [Serializable ()] alla classe demo.

  2. Ricompilare il progetto.

Una volta completate le modifiche, il file Class1.cs dovrebbe essere analogo al seguente:

//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; } }
    }
}

Esclusione degli avvisi dell'analisi del codice

Per escludere gli avvisi degli errori del codice

  1. Per ognuno degli avvisi rimanenti, effettuare le operazioni seguenti:

    1. Nella finestra dell'analisi codice, selezionare l'avviso.

    2. Scegliere Azioni, quindi scegliere Elimina messaggio quindi scegliere File di eliminazione in progetto.

    Per ulteriori informazioni, vedere Procedura: eliminare gli avvisi tramite una voce di menu.

  2. Ricompilare il progetto.

    Il progetto verrà compilato senza alcun avviso o errore.