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 |
|
Analizzare il progetto
Per analizzare un progetto gestito per identificare gli errori del codice
Selezionare il progetto CodeAnalysisManagedDemo in Esplora soluzioni.
Scegliere Proprietà dal menu Progetto.
Verrà visualizzata la pagina delle proprietà di CodeAnalysisManagedDemo.
Fare clic su Analisicodice.
Assicurarsi che Abilita Analisi codice in fase di compilazione (definisce la costante CODE_ANALYSIS) sia selezionato.
Dall'elenco a discesa Esegui set di regole selezionare Tutte le regole Microsoft.
Scegliere Salva elementi selezionati dal menu File, quindi chiudere la pagina delle proprietà ManagedDemo.
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
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.
In Esplora soluzioni, scegliere Mostra tutti i file.
Espandere quindi il nodo Proprietà e aprire il file AssemblyInfo.cs.
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. |
|
CA1032: Implementare costruttori di eccezioni standard: Microsoft.Design: Aggiungere il seguente costruttore a questa classe: public demo(String) |
|
CA1032: Implementare costruttori di eccezioni standard: Microsoft.Design: Aggiungere il seguente costruttore a questa classe: public demo(String, Exception) |
|
CA1032: Implementare costruttori di eccezioni standard: Microsoft.Design: Aggiungere il seguente costruttore a questa classe: protected demo(SerializationInfo, StreamingContext) |
|
CA1032: Implementare costruttori di eccezioni standard: Microsoft.Design: Aggiungere il seguente costruttore a questa classe: public demo() |
|
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'. |
|
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'. |
|
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'. |
|
CA1710: Gli identificatori devono contenere il suffisso corretto: Microsoft.Naming: Rinominare 'testCode.demo' in modo che termini in 'Exception'. |
|
CA2210: Gli assembly devono avere nomi sicuri validi: Firmare 'ManagedDemo' con una chiave con nome sicuro. |
|
CA2237: Contrassegnare i tipi ISerializable con SerializableAttribute: Microsoft.Usage: Aggiungere [Serializable] a 'demo' poiché questo tipo implementa ISerializable. |
|
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
Per ognuno degli avvisi rimanenti, effettuare le operazioni seguenti:
Nella finestra dell'analisi codice, selezionare l'avviso.
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.
Ricompilare il progetto.
Il progetto verrà compilato senza alcun avviso o errore.