2010-02-15 5 views
5

Ich habe eine .NET-Bibliothek von Drittanbietern, die die Ausgabe einiger wichtiger Diagnoseinformationen an eine TextWriter Instanz ermöglicht. Ich möchte diese Informationen in das Ausgabefenster von Visual Studio 2008 im Debug-Modus ausgegeben und ignoriert werden, wenn nicht im Debug-Modus. Gibt es eine Möglichkeit, einen Verweis auf einen Ausgabestream zu erhalten, der dieses Ausgabefenster verwendet, damit ich eine TextWriter erstellen kann, die es verwendet?Wie kann ich einen Verweis auf einen Ausgabestream erhalten, der in das Ausgabefenster von Visual Studio schreibt?

Um die Konsole für die Ausgabe zu verwenden, kann ich ... tun

foo.LogTo(Console.Out); 

diese Schnittstelle verwenden, kann ich gesendet Info an das Ausgabefenster erhalten anmelden?

Antwort

1

Visual Studio hat für die writing of messages to the output window through the Debug class since .NET 1.1 zugelassen.

Mit diesem gesagt, ist es einfach genug, Ihre eigene TextWriter-Implementierung zu erstellen, die Aufrufe an die entsprechenden Methoden in der Debug-Klasse weiterleiten würde. Wenn der Inhalt in Ihren TextWriter geschrieben wird, rufen Sie die Debug-Klassenmethode auf und sie wird im Ausgabefenster angezeigt.

Auch, weil Sie die Debug-Klasse aufrufen, wenn Sie nicht im Debug-Modus sind, wird die Ausgabe nicht ausgegeben (wegen der Conditional Attribut für die Methoden der Debug-Klasse).

+0

Danke ... Ich denke, ich hatte nicht wirklich das Offensichtliche eines eigenen TextWriter, der nur an Debug.WriteLine delegiert hat, aber ich denke, das ist relativ einfach und wahrscheinlich, was ich am Ende tun werde. –

1

Sie können Ihre eigene TextWriter-abgeleitete Klasse mithilfe der OutputDebugString API erstellen oder Debug.WriteLine() verwenden, um die Daten weiterzuleiten.

Verwandte Themen