2008-12-14 9 views
6

J'ai une DLL externe dont le code source est C#. De la documentation de la DLL, j'ai déterminé qu'il écrit ses messages de débogage à la console en utilisant Console.WriteLine. Je voudrais utiliser cette DLL dans une application WinForms.Utilisation de Console.WriteLine dans une application Windows Forms

Cependant, ce que j'ai découvert est que je ne peux pas voir les messages de débogage émis par la DLL car une application WinForms n'a pas de console.

Y at-il un moyen de capturer ces messages de débogage, peut-être même à un simple fichier journal? Bien sûr, l'utilisation de ProcessInfo.RedirectStandartOutput ne fonctionnera pas car je n'utilise pas la DLL en tant que processus.

Répondre

14

Appelez Console.SetOut avec un TextWriter que vous contrôlez (par exemple un StringWriter).

4

Vous seriez mieux servi en utilisant l'espace de noms System.Diagnostics et Debug.WriteLine à la place. Le débogage prend en charge les 'écouteurs' qui peuvent être ajoutés au moment de l'exécution ou via les fichiers app/web.config. Par exemple: -

Debug.Listeners.Add(new ConsoleTraceListener()) 

Si vous implémentez une consignation de débogage personnalisée en tant qu'auditeur de trace, vous pouvez capturer votre application de messagerie de trace large très facilement.

Questions connexes