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

In questa procedura dettagliata si analizzerà un progetto gestito per individuare 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 ottenere la conformità alle linee guida per la 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 individuare i difetti del codice

  1. Selezionare il progetto CodeAnalysisManagedDemo in Esplora soluzioni.

  2. Scegliere Proprietà dal menu Progetto.

    Viene visualizzata la pagina delle proprietà CodeAnalysisManagedDemo.

  3. Scegliere la scheda Analisi codice.

  4. Assicurarsi che l'opzione Esegui in compilazione sia selezionata nella sezione Analizzatori binari.

  5. Nell'elenco a discesa Regole attive selezionare Microsoft All Rules .From the Active rules list, select Microsoft All Rules.

  6. Scegliere Salva elementi selezionati dal menu File e quindi chiudere le pagine delle proprietà.

  7. Nel menu Compila fare clic su Compila codiceAnalysisManagedDemo.

    Gli avvisi di compilazione del progetto CodeAnalysisManagedDemo vengono 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 di sviluppo scelto, potrebbe essere necessario scegliere Altre finestre dal menu Visualizza e quindi scegliere Elenco errori.

  2. In Esplora soluzioni scegliere Mostra tutti i file.

  3. Espandere il nodo Proprietà e 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 demo di classe. È anche necessario aggiungere un'istruzione using per System.Runtime.Serialization.

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

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

    CA1709: Gli identificatori devono essere maiuscoli correttamente: modificare il nome del membro in Demo.

    CA1709: Gli identificatori devono essere maiuscoli 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'attributo [Serializable ()] alla classe demo.

    CA2210: Gli assembly devono avere nomi sicuri validi: firmare "CodeAnalysisManagedDemo" con una chiave con nome sicuro:

    1. Scegliere CodeAnalysisManagedDemo Properties dal menu Progetto.

      Vengono 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 del nome stringa selezionare <Nuovo>.

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

    5. In Nome file chiave immettere TestKey.

    6. Immettere una password e 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 di 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.

Escludere gli avvisi di analisi del codice

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

    1. Selezionare l'avviso nell'elenco errori.

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

  2. Ricompilare il progetto.

    Il progetto viene compilato senza avvisi o errori.

Analisi del codice per codice gestito