2008-12-14 13 views
6

Tengo una DLL externa cuyo código fuente es C#. De la documentación para el DLL, determiné que escribe sus mensajes de depuración en la consola usando Console.WriteLine.Uso de Console.WriteLine dentro de una aplicación de Windows Forms

Me gustaría utilizar esta DLL dentro de una aplicación de WinForms. Sin embargo, lo que descubrí es que no puedo ver los mensajes de depuración emitidos por el DLL ya que una aplicación WinForms no tiene una consola.

¿hay alguna forma de capturar esos mensajes de depuración, tal vez incluso en un simple archivo de registro? Por supuesto, usar ProcessInfo.RedirectStandartOutput no funcionará ya que no utilizo la DLL como un proceso.

Respuesta

14

Llame al Console.SetOut con un TextWriter que controle (por ejemplo, un StringWriter).

4

Lo mejor será que use el espacio de nombres System.Diagnostics y Debug.WriteLine en su lugar. Debug admite "escuchas" que pueden agregarse en tiempo de ejecución o mediante los archivos app/web.config. Por ejemplo: -

Debug.Listeners.Add(new ConsoleTraceListener()) 

Si implementa ningún registro de depuración personalizada como una escucha de seguimiento, puede capturar su aplicación amplia mensajes de seguimiento con mucha facilidad.

Cuestiones relacionadas