2010-02-15 8 views
5

Possiedo una libreria .NET di terze parti che consente l'output di alcune informazioni di diagnostica chiave in un'istanza TextWriter. Mi piacerebbe avere queste informazioni scaricate nella finestra di output di Visual Studio 2008 mentre si trovava in modalità di debug e ignorate se non in modalità di debug. C'è un modo per ottenere un riferimento a un flusso di output che utilizza questa finestra di output in modo da poter creare un TextWriter che lo utilizza?Come posso ottenere un riferimento a un flusso di output che scrive nella finestra "output" di Visual Studio?

di utilizzare la console per l'output, che posso fare ...

foo.LogTo(Console.Out); 

Utilizzando questa interfaccia, posso ottenere informazioni inviato alla finestra di output di log?

risposta

1

Visual Studio ha consentito il writing of messages to the output window through the Debug class since .NET 1.1.

Detto ciò, è abbastanza facile creare la propria implementazione TextWriter che inoltrerebbe semplicemente le chiamate ai metodi appropriati nella classe Debug. Quando il contenuto viene scritto sul tuo TextWriter, chiamerai il metodo di classe Debug e apparirà nella finestra di output.

Inoltre, poiché si effettuano le chiamate alla classe Debug, quando non si è in modalità di debug, l'output non verrà emesso (a causa dell'attributo Conditional sui metodi della classe Debug).

+0

Grazie ... Immagino di non aver davvero considerato l'ovvio creare un mio TextWriter che ha appena delegato a Debug.WriteLine, ma penso che sia relativamente semplice e probabilmente quello che finirò per fare. –

1

È possibile creare la propria classe derivata da TextWriter, utilizzando OutputDebugString API o utilizzare Debug.WriteLine() per inoltrare i dati.

Problemi correlati