Exemplarische Vorgehensweise: Analysieren von verwaltetem Code auf Codefehler
In dieser exemplarischen Vorgehensweise analysieren Sie mit dem Codeanalysetool ein verwaltetes Projekt, um Codefehler zu ermitteln.
Sie werden Schritt für Schritt durch den Vorgang der Codeanalyse geführt, bei der Sie .NET-Assemblys mit verwaltetem Code im Hinblick auf die Einhaltung der Microsoft .NET Framework-Entwurfsrichtlinien überprüfen.
In dieser exemplarischen Vorgehensweise führen Sie folgende Schritte aus:
- Analysieren von Codefehlerwarnungen und Beheben der Fehler
Vorbereitungsmaßnahmen
- Visual Studio Premium.
Erstellen einer Klassenbibliothek
So erstellen Sie eine Klassenbibliothek |
|
Analysieren des Projekts
So analysieren Sie ein verwaltetes Projekt auf Codefehler
Wählen Sie im Projektmappen-Explorer das Projekt CodeAnalysisManagedDemo aus.
Klicken Sie im Menü Projekt auf Eigenschaften.
Die Eigenschaftenseite für CodeAnalysisManagedDemo wird angezeigt.
Klicken Sie auf Codeanalyse.
Überprüfen Sie, ob Aktivieren Codeanalyse beim Erstellen aktivieren (definiert CODE_ANALYSIS-Konstante) überprüft werden.
Wählen Sie aus der Dropdownliste Diesen Regelsatz ausführen die Option Alle Microsoft-Regeln aus.
Klicken Sie im Menü Datei auf Ausgewählte Elemente speichern, und schließen Sie dann die Eigenschaftenseiten für ManagedDemo.
Klicken Sie im Menü Erstellen auf ManagedDemo erstellen.
Die CodeAnalysisManagedDemo-Projekt-Erstellungs Codeanalyse und Warnungen werden in den Fenstern Ausgabe gemeldet.
Wenn das Fenster CodeanalyseAnalysieren nicht im Menü angezeigt wird, wählen Sie Fenster, und klicken Sie dann wählen Sie Codeanalyse ausaus.
Korrigieren der Codeanalyseprobleme
So korrigieren Sie Verletzungen der Codeanalyseregeln
Klicken Sie im Menü Ansicht auf Fehlerliste.
Je nach ausgewähltem Entwicklerprofil müssen Sie im Menü Ansicht möglicherweise zuerst auf Weitere Fenster zeigen, bevor Sie auf Fehlerliste klicken können.
Klicken Sie im Projektmappen-Explorer auf Alle Dateien anzeigen.
Erweitern Sie den Knoten Eigenschaften, und öffnen Sie dann die Datei AssemblyInfo.cs.
Korrigieren Sie die den folgenden Warnungen zugrunde liegenden Fehler anhand der Angaben in der folgenden Tabelle:
Warnungen |
Fehlerkorrektur |
---|---|
CA1014: Assemblys mit CLSCompliantAttribute markieren: Microsoft.Design: 'demo' sollte mit CLSCompliantAttribute markiert sein, und der Wert sollte True sein. |
|
CA1032: Standardausnahmekonstruktoren implementieren: Microsoft.Design: Fügen Sie dieser Klasse den folgenden Konstruktor hinzu: public demo(String) |
|
CA1032: Standardausnahmekonstruktoren implementieren: Microsoft.Design: Fügen Sie dieser Klasse den folgenden Konstruktor hinzu: public demo(String, Exception) |
|
CA1032: Standardausnahmekonstruktoren implementieren: Microsoft.Design: Fügen Sie dieser Klasse den folgenden Konstruktor hinzu: protected demo(SerializationInfo, StreamingContext) |
|
CA1032: Standardausnahmekonstruktoren implementieren: Microsoft.Design: Fügen Sie dieser Klasse den folgenden Konstruktor hinzu: public demo() |
|
CA1709: Bei Bezeichnern sollte die Groß-/Kleinschreibung beachtet werden: Microsoft.Naming: Korrigieren Sie die Groß-/Kleinschreibung des Namespacenamens 'testCode' in 'TestCode'. |
|
CA1709: Bei Bezeichnern sollte die Groß-/Kleinschreibung beachtet werden: Microsoft.Naming: Korrigieren Sie die Groß-/Kleinschreibung des Typnamens 'demo' in 'Demo'. |
|
CA1709: Bei Bezeichnern sollte die Groß-/Kleinschreibung beachtet werden: Microsoft.Naming: Korrigieren Sie die Groß-/Kleinschreibung des Membernamens 'item' in 'Item'. |
|
CA1710: Bezeichner sollten ein richtiges Suffix aufweisen: Microsoft.Naming: Benennen Sie 'testCode.demo' so um, dass die Endung 'Exception' lautet. |
|
CA2210: Assemblys müssen gültige starke Namen aufweisen: Signieren Sie 'ManagedDemo' mit einem Schlüssel mit starkem Namen. |
|
CA2237: Markieren von ISerializable-Typen mit SerializableAttribute: Microsoft.Usage: Fügen Sie 'demo' [Serializable] hinzu, da dieser Typ ISerializable implementiert. |
|
Nachdem Sie die Änderungen ausgeführt haben, sollte die Datei Class1.cs wie folgt aussehen:
//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; } }
}
}
Ausschließen von Codeanalysewarnungen
So schließen Sie Codefehlerwarnungen aus
Für jede der verbleibenden Warnungen, gehen Sie wie folgt vor:
Im Fenster Codeanalyse Wählen Sie die Warnung aus.
Wählen Sie Aktionenaus, und wählen Sie Meldung unterdrückenaus, und wählen Sie dann In Projektunterdrückungsdateiaus.
Weitere Informationen finden Sie unter Gewusst wie: Unterdrücken von Warnungen über das Menüelement.
Erstellen Sie das Projekt neu.
Das Projekt wird ohne Warnungen oder Fehler erstellt.