Freigeben über


Exemplarische Vorgehensweise: Analysieren von verwaltetem Code auf Codefehler

Aktualisiert: November 2007

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

So analysieren Sie ein verwaltetes Projekt auf Codefehler

  1. Öffnen Sie in Development Edition die Projektmappe ManagedDemo.

  2. Wählen Sie das Projekt ManagedDemo im Projektmappen-Explorer aus.

  3. Klicken Sie im Menü Projekt auf Eigenschaften.

    Die Eigenschaftenseiten für ManagedDemo werden angezeigt.

  4. Klicken Sie auf Codeanalyse.

  5. Wählen Sie Codeanalyse aktivieren (definiert eine CODE_ANALYSIS-Konstante) aus.

  6. Klicken Sie im Menü Datei auf Ausgewählte Elemente speichern, und schließen Sie dann die Eigenschaftenseiten für ManagedDemo.

  7. Klicken Sie im Menü Erstellen auf ManagedDemo erstellen.

    Die Buildwarnungen zum Projekt ManagedDemo werden in den Fenstern Fehlerliste und Ausgabe angezeigt.

So korrigieren Sie Verletzungen der Codeanalyseregeln

  1. 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.

  2. Klicken Sie im Projektmappen-Explorer auf Alle Dateien anzeigen.

  3. Erweitern Sie den Knoten Konfiguration, und öffnen Sie dann die Datei AssemblyInfo.cs.

  4. Korrigieren Sie die den folgenden Warnungen zugrunde liegenden Fehler anhand der Angaben in der folgenden Tabelle:

Warnungen

Fehlerkorrektur

Markieren von Assemblys mit CLSCompliantAttribute: Microsoft.Design: 'ManagedDemo' sollte mit CLSCompliantAttribute markiert sein, und der Wert sollte True sein.

  1. Fügen Sie der Datei AssemblyInfo.cs den Code usingSystem; hinzu.

  2. Fügen Sie dann am Ende der Datei AssemblyInfo.cs den Code [assembly: CLSCompliant(true)] hinzu.

  3. Erstellen Sie das Projekt neu.

Compilerwarnung (Stufe 1) CS3008.

  1. Ändern Sie den Namen des Felds _item in ItemCount.

  2. Ändern Sie public static int item { get { return _item; } }, um ItemCount zurückzugeben.

  3. Erstellen Sie das Projekt neu.

Markieren von ISerializable-Typen mit SerializableAttribute: Microsoft.Usage: Fügen Sie 'demo' [Serializable] hinzu, da dieser Typ ISerializable implementiert.

  1. Fügen Sie der Klasse demo das [Serializable ()]-Attribut hinzu.

  2. Erstellen Sie das Projekt neu.

Standardausnahmekonstruktoren implementieren: Microsoft.Design: Fügen Sie dieser Klasse den folgenden Konstruktor hinzu: public demo(String)

  • Fügen Sie der Klasse demo den Konstruktor public demo (String s) : base(s) { } hinzu.

Standardausnahmekonstruktoren implementieren: Microsoft.Design: Fügen Sie dieser Klasse den folgenden Konstruktor hinzu: public demo(String, Exception)

  • Fügen Sie der Klasse demo den Konstruktor public demo (String s, Exception e) : base(s, e) { } hinzu.

Standardausnahmekonstruktoren implementieren: Microsoft.Design: Fügen Sie dieser Klasse den folgenden Konstruktor hinzu: protected demo(SerializationInfo, StreamingContext)

  1. Fügen Sie am Anfang der Datei Class1.cs hinzu den Code using System.Runtime.Serialization; hinzu.

  2. Fügen Sie dann den Konstruktor protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } to the class demo. hinzu.

  3. Erstellen Sie das Projekt neu.

Standardausnahmekonstruktoren implementieren: Microsoft.Design: Fügen Sie dieser Klasse den folgenden Konstruktor hinzu: public demo()

  1. Fügen Sie der Klasse demo den Konstructor public demo () : base() { } hinzu.

  2. Erstellen Sie das Projekt neu.

Bezeichner sollten ein richtiges Suffix aufweisen: Microsoft.Naming: Benennen Sie 'testCode.demo' so um, dass die Endung 'Exception' lautet.

  • Ändern Sie den Namen der Klasse und der zugehörigen Konstruktoren in DemoException.

Bei Bezeichnern sollte die Groß-/Kleinschreibung beachtet werden: Microsoft.Naming: Korrigieren Sie die Schreibweise des Namespacenamens 'testCode'.

  • Ändern Sie die Schreibweise des Namespacenamens testCode in TestCode.

Bei Bezeichnern sollte die Groß-/Kleinschreibung beachtet werden: Microsoft.Naming: Korrigieren Sie die Schreibweise des Membernamens 'item'.

  • Ändern Sie den Namen des Members in Item.

Assemblys müssen gültige starke Namen aufweisen: Signieren Sie 'ManagedDemo' mit einem Schlüssel mit starkem Namen.

  1. Klicken Sie im Menü Projekt auf Eigenschaften von ManagedDemo.

    Die Projekteigenschaften werden angezeigt.

  2. Klicken Sie auf Signierung.

  3. Aktivieren Sie das Kontrollkästchen Assembly signieren.

  4. Wählen Sie in der Liste Schlüsseldatei mit starkem Namen auswählen die Option <Neu...> aus.

    Das Dialogfeld Schlüssel für einen starken Namen erstellen wird geöffnet.

  5. Geben Sie im Feld Schlüsseldateiname den Namen TestKey ein.

  6. Geben Sie ein Kennwort ein, und klicken Sie dann auf OK.

  7. Klicken Sie im Menü Datei auf Ausgewählte Elemente speichern, und schließen Sie dann die Eigenschaftenseiten.

  8. Erstellen Sie das Projekt neu.

Ausschließen von Codeanalysewarnungen

So schließen Sie Codefehlerwarnungen aus

  1. Wählen Sie die übrigen Warnungen in der Fehlerliste aus, klicken Sie dann mit der rechten Maustaste, und wählen Sie Meldung(en) unterdrücken aus.

  2. Erstellen Sie das Projekt neu.

    Das Projekt wird ohne Warnungen oder Fehler erstellt.