我有一个第三方 .NET 库,可以将一些关键诊断信息输出到TextWriter
实例。我希望在调试模式下将此信息转储到 Visual Studio 2008 的输出窗口,如果不在调试模式下则忽略。有什么方法可以引用使用此输出窗口的输出流,以便创建TextWriter
使用它的输出流?
要使用控制台进行输出,我可以...
foo.LogTo(Console.Out);
使用这个接口,我可以得到发送到输出窗口的日志信息吗?
我有一个第三方 .NET 库,可以将一些关键诊断信息输出到TextWriter
实例。我希望在调试模式下将此信息转储到 Visual Studio 2008 的输出窗口,如果不在调试模式下则忽略。有什么方法可以引用使用此输出窗口的输出流,以便创建TextWriter
使用它的输出流?
要使用控制台进行输出,我可以...
foo.LogTo(Console.Out);
使用这个接口,我可以得到发送到输出窗口的日志信息吗?
自 .NET 1.1 起,Visual Studio 允许通过 Debug 类将消息写入输出窗口。
话虽如此,创建自己的 TextWriter 实现很容易,它只会将调用转发到 Debug 类上的适当方法。当内容写入您的 TextWriter 时,您将调用 Debug 类方法,它将出现在输出窗口中。
此外,因为您正在调用 Debug 类,所以当您不处于调试模式时,不会输出输出(因为 Debug 类的方法上的Conditional属性)。
您可以创建自己的 TextWriter 派生类,使用OutputDebugString API或使用 Debug.WriteLine() 来转发数据。