Procedura dettagliata: usare l'analisi del codice statica per individuare i difetti del codice

In questa procedura dettagliata si analizzerà un progetto gestito per i difetti del codice usando l'analisi del codice legacy.

Questo articolo illustra il processo di utilizzo dell'analisi legacy per analizzare gli assembly di codice gestito .NET per conformità con le linee guida di progettazione .NET.

Creare una libreria di classi

  1. Aprire Visual Studio e creare un nuovo progetto dal modello libreria di classi (.NET Framework) .

  2. Denominare il progetto CodeAnalysisManagedDemo.

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

  4. Sostituire il testo esistente in Class1.cs con il codice seguente:

    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; } }
        }
    }
    
  5. Salvare il file Class1.cs.

Analizzare il progetto per i difetti del codice

  1. Selezionare il progetto CodeAnalysisManagedDemo in Esplora soluzioni.

  2. Scegliere Proprietà dal menu Progetto.

    Verrà visualizzata la pagina delle proprietà CodeAnalysisManagedDemo.

  3. Scegliere la scheda analisi codice .

  1. Assicurarsi che l'opzione Abilita analisi codice su compilazione sia selezionata.

  2. Dall'elenco a discesa Esegui questo set di regole selezionare Microsoft all Rules.

  1. Assicurarsi che l'opzione Esegui su compilazione sia selezionata nella sezione analizzatori binari .

  2. Dall'elenco a discesa regole attive selezionare Microsoft all Rules.

  1. Scegliere Salva elementi selezionati dal menu file e quindi chiudere le pagine delle proprietà.

  2. Scegliere Compila CodeAnalysisManagedDemo dal menu Compila .

    Gli avvisi di compilazione del progetto CodeAnalysisManagedDemo sono visualizzati nelle finestre Elenco errori e output .

Correggere i problemi di analisi del codice

  1. Scegliere Elenco errori dal menu Visualizza .

    A seconda del profilo dello sviluppatore scelto, potrebbe essere necessario puntare ad altre finestre dal menu Visualizza , quindi scegliere Elenco errori.

  2. In Esplora soluzioni scegliere Mostra tutti i file.

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

  4. Usare i suggerimenti seguenti per correggere gli avvisi:

    CA1014: contrassegnare gli assembly con CLSCompliantAttribute: aggiungere il codice [assembly: CLSCompliant(true)] alla fine del file AssemblyInfo.cs.

    CA1032: implementare costruttori di eccezioni standard: aggiungere il costruttore public demo (String s) : base(s) { } alla classe demo .

    CA1032: implementare costruttori di eccezioni standard: aggiungere il costruttore public demo (String s, Exception e) : base(s, e) { } alla classe demo .

    CA1032: implementare costruttori di eccezioni standard: aggiungere il costruttore protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } alla classe demo. Sarà inoltre necessario aggiungere un' using istruzione per System.Runtime.Serialization .

    CA1032: implementare costruttori di eccezioni standard: aggiungere il costruttore public demo () : base() { } alla classe demo .

    CA1709: gli identificatori devono essere configurati correttamente: modificare la combinazione di maiuscole e minuscole dello spazio dei nomi testCode in TestCode .

    CA1709: gli identificatori devono essere configurati correttamente: modificare il nome del membro in Demo .

    CA1709: gli identificatori devono essere configurati correttamente: modificare il nome del membro in Item .

    CA1710: gli identificatori devono avere il suffisso corretto: modificare il nome della classe e i relativi costruttori in DemoException .

    CA2237: contrassegnare i tipi ISerializable con SerializableAttribute: aggiungere l' [Serializable ()] attributo alla classe demo .

    CA2210: gli assembly devono avere nomi sicuri validi: Sign ' CodeAnalysisManagedDemo ' con una chiave con nome sicuro:

    1. Scegliere Proprietà CodeAnalysisManagedDemo dal menu progetto .

      Verranno visualizzate le proprietà del progetto.

    2. Scegliere la scheda Firma .

    3. Selezionare la casella di controllo Firma assembly .

    4. Nell'elenco scegliere un file di chiave con nome stringa selezionare <New> .

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

    5. Per nome file di chiave immettere TestKey.

    6. Immettere una password, quindi scegliere OK.

    7. Scegliere Salva elementi selezionati dal menu file e quindi chiudere le pagine delle proprietà.

    Dopo aver completato tutte le modifiche, il file Class1.cs dovrebbe essere simile al seguente:

    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; } }
        }
    }
    
  5. Ricompilare il progetto.

Escludi avvisi di analisi codice

  1. Per ogni avviso rimanente, procedere come segue:

    1. Selezionare l'avviso nella Elenco errori.

    2. Dal menu di scelta rapida (menu di scelta rapida) scegliere Elimina > nel file di eliminazione.

  2. Ricompilare il progetto.

    Il progetto viene compilato senza avvisi o errori.

Vedi anche

Analisi codice per il codice gestito