Gewusst wie: Hinzufügen von Ablaufverfolgungsanweisungen zu Anwendungscode

Aktualisiert: November 2007

Die beliebtesten Methoden der Ablaufverfolgung sind diejenigen, die die Ausgabe in Listener schreiben: Write, WriteIf, WriteLine, WriteLineIf, Assert und Fail. Diese Methoden lassen sich in zwei Kategorien einteilen: Write, WriteLine und Fail geben die gesamte Ausgabe ohne Bedingung aus, während WriteIf, WriteLineIf und Assert eine Boolean-Bedingung prüfen und den Schreibvorgang vom Wert der Bedingung abhängig machen. WriteIf und WriteLineIf geben die Ausgabe aus, wenn die Bedingung True ergibt, und Assert, wenn sie False ist.

Beim Entwerfen der Ablaufverfolgungs- und Debugstrategie müssen Sie sich überlegen, wie die Ausgabe angezeigt werden soll. Mehrere Write-Anweisungen mit unverknüpften Informationen erstellen ein Protokoll, das schwer zu lesen ist. Andererseits wird es schwierig zu unterscheiden, welche Informationen zusammengehören, wenn verknüpfte Anweisungen mit WriteLine in separate Zeilen geschrieben werden. Im Allgemeinen verwenden Sie mehrere Write-Anweisungen, wenn Informationen aus mehreren Quellen zu einer einzelnen Informationsmeldung kombiniert werden sollen, und die WriteLine-Anweisung, wenn eine einzige vollständige Meldung zu erstellen ist.

So schreiben Sie eine vollständige Zeile

  • Rufen Sie die WriteLine-Methode oder WriteLineIf-Methode auf.

    Am Ende der von dieser Methode zurückgegebenen Meldung wird ein Wagenrücklaufzeichen angehängt, d. h., die nächste von Write, WriteIf, WriteLine oder WriteLineIf zurückgegebene Meldung beginnt in der folgenden Zeile:

    Dim errorFlag As Boolean = False
    Trace.WriteLine("Error in AppendData procedure.")
    Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.") 
    
    bool errorFlag = false;
    System.Diagnostics.Trace.WriteLine ("Error in AppendData procedure.");
    System.Diagnostics.Trace.WriteLineIf(errorFlag, 
       "Error in AppendData procedure.");
    
    boolean errorFlag = false;
    System.Diagnostics.Trace.WriteLine("Error in AppendData procedure.");
    System.Diagnostics.Trace.WriteLineIf(errorFlag, 
       "Error in AppendData procedure.");
    

So schreiben Sie eine Teilzeile

  • Rufen Sie die Write-Methode oder WriteIf-Methode auf.

    Die nächste von Write, WriteIf, WriteLine oder WriteLineIf ausgegebene Meldung beginnt in der gleichen Zeile wie die von den Anweisungen Write oder WriteIf ausgegebenen Meldungen:

    Dim errorFlag As Boolean = False
    Trace.WriteIf(errorFlag, "Error in AppendData procedure.")
    Debug.WriteIf(errorFlag, "Transaction abandoned.")
    Trace.Write("Invalid value for data request")
    
    bool errorFlag = false;
    System.Diagnostics.Trace.WriteIf(errorFlag, 
       "Error in AppendData procedure.");
    System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned.");
    Trace.Write("Invalid value for data request");
    
    boolean errorFlag = false;
    System.Diagnostics.Trace.WriteIf(errorFlag, "Error in AppendData procedure.");
    System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned.");
          System.Diagnostics.Trace.Write("Invalid value for data request");
    

So überprüfen Sie vor oder nach der Ausführung einer Methode, ob bestimmte Bedingungen vorliegen

  • Rufen Sie die Assert-Methode auf.

    Dim I As Integer = 4
    Trace.Assert(I = 5, "I is not equal to 5.")
    
    int I = 4;
    System.Diagnostics.Trace.Assert(I == 5, "I is not equal to 5.");
    
    int I = 4;
    System.Diagnostics.Trace.Assert(I == 5, "I is not equal to 5.");
    
    Hinweis:

    Sie können Assert sowohl bei der Ablaufverfolgung als auch beim Debuggen verwenden. In diesem Beispiel wird die Aufrufliste an alle Listener in der Listeners-Auflistung ausgegeben. Weitere Informationen finden Sie unter Assertionen in verwaltetem Code und Debug.Assert.

Siehe auch

Aufgaben

Gewusst wie: Konfigurieren von Ablaufverfolgungsschaltern

Konzepte

Einführung in Instrumentation und Ablaufverfolgung

Ablaufverfolgungsschalter

Ablaufverfolgungslistener

Referenz

Debug.WriteIf

Debug.WriteLineIf

Trace.WriteIf

Trace.WriteLineIf

Weitere Ressourcen

Ablaufverfolgung und Instrumentieren von Anwendungen