Návod: Analýza spravovaného kódu na výskyt závad v kódu
V tomto návodu budete analyzovat spravovaný projekt z pohledu chyb v kódu pomocí nástroje pro analýzu kódu.
Tento návod Vás provede skrz proces použití analýzy kódu pro analýzu sestavení spravovaného kódu technologie .NET z pohledu schody s pokyny pro návrh technologie .NET Framework společnosti Microsoft.
V tomto návodu provedete:
- Analýzu a opravu upozornění na vadu v kódu.
Požadavky
- Visual Studio Premium.
Vytvoření knihovny tříd
Vytvoření knihovny tříd |
|
Analýza projektu
Analýza spravovaného projektu z pohledu chyb v kódu
V podokně Průzkumník řešenívyberte projekt CodeAnalysisManagedDemo.
V nabídce Projekt klikněte na Vlastnosti.
Zobrazí se stránka vlastností projektu CodeAnalysisManagedDemo.
Klikněte na položky Kód a Analýza.
Ujistěte se, že je zaškrtnuto zaškrtávací políčko PovolitAnalýza kódu při sestavení(definuje konstantu CODE_ANALYSIS).
V rozevíracím seznamu Spustit tuto sadu pravidel vyberte položku Všechna pravidla společnosti Microsoft.
V nabídce Soubor klikněte na položku Uložit vybrané položky a poté stránku vlastností projektu ManagedDemo zavřete.
V nabídce Sestavení klikněte na položku Sestavit projekt ManagedDemo.
Upozornění během sestavení projektu CodeAnalysisManagedDemo jsou zobrazeny v podoknech Analýza kódu a Výstup.
Pokud se okno Analýza kódu nezobrazí, v nabídce Analyzovat vyberte klikněte na položku Windows a následně vyberte položku Analýza kódu.
Oprava problémů analýzy kódu
Oprava porušení pravidel analýzy kódu
V nabídce Zobrazit klikněte na položku Seznam chyb.
V závislosti na zvoleném vývojovém profilu bude možná potřeba najet myší na položku Další okna v nabídce Zobrazení a následně kliknout na položku Seznam chyb.
V podokně Prohlížeč řešení klikněte na položku Zobrazit všechny filtry.
Dále, rozbalte uzel Vlastnosti a následně otevřete soubor AssemblyInfo.cs.
Pro opravu upozornění použijte následující tabulku:
Upozornění |
Oprava upozornění |
---|---|
CA1014: Označte sestavení pomocí atributu CLSCompliantAttribute: Microsoft.Design: Třída "demo" by měla být označena atributem CLSCompliantAttribute s hodnotou true. |
|
CA1032: Implementujte standardní konstruktory výjimky: Microsoft.Design: Přidejte této třídě konstruktor: public demo(String). |
|
CA1032: Implementujte standardní konstruktory výjimky: Microsoft.Design: Přidejte této třídě konstruktor: public demo (String, Exception) |
|
CA1032: Implementujte standardní konstruktory výjimky: Microsoft.Design: Přidejte této třídě konstruktor: protected demo(SerializationInfo, StreamingContext) |
|
CA1032: Implementujte standardní konstruktory výjimky: Microsoft.Design: Přidejte této třídě konstruktor: public demo() |
|
CA1709: Malá a velká písmena identifikátorů by měla být použita správně: Microsoft.Naming: Opravte velikosti písmen v názvu oboru názvů "testCode" změnou za "TestCode". |
|
CA1709: Malá a velká písmena identifikátorů by měla být použita správně: Microsoft.Naming: Opravte velikost písmen v názvu typu "demo" záměnou za "Demo". |
|
CA1709: Malá a velká písmena identifikátorů by měla být použita správně: Microsoft.Naming: Opravte velikost písmen v názvu členu "item" záměnou za "Item". |
|
CA1710: Identifikátory by měly mít správnou příponu: Microsoft.Naming: Přejmenujte "testCode.demo", aby název končil řetězcem "Exception". |
|
CA2210: Sestavení by měly mít platné silné názvy: Podepište "ManagedDemo" klíčem se silným názvem. |
|
CA2237: Označte typy ISerializable pomocí SerializableAttribute: Microsoft.Usage: Jelikož typ "demo" implementuje rozhraní ISerializable, přidejte tomuto typu atribut [Serializable]. |
|
Po dokončení těchto změn by měl soubor Class1.cs vypadat následovně:
//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; } }
}
}
Vyloučení upozornění analýzy kódu
Vyloučení upozornění na vadu kódu
Pro každé následující upozornění proveďte následující:
V okně Analýza kódu vyberte upozornění.
Klikněte na položku Akce, následně na položku Potlačit zprávy a nakonec na položku V souboru potlačení projektu.
Další informace získáte v tématu Postupy: Potlačení upozornění použitím položky nabídky
Projekt opět sestavte.
Projekt se sestaví bez jakýchkoli upozornění nebo chyb.