我有一个输出到 TextBox 的 TextWriter。我已将 TextWriter 连接到 Console.Out:
// set application console output to the output text box
Console.SetOut(TextWriter.Synchronized(new TextBoxWriter(this)));
class TextBoxWriter : TextWriter
{
public override void WriteLine(string value)
{
// output to text box
}
}
这很好,但是我发现.NET框架本身正在将跟踪/调试输出写入控制台,因此我的窗口!
例如,用户可以单击在表单上创建控件的按钮。这将输出如下内容:
170,130 0,0
调用堆栈显示正在从外部代码调用文本编写器 WriteLine 函数以响应 MyForm.Controls.Add(...);
如果用户调整控件的大小,那么 .NET 框架会将如下废话写入控制台:
0.574257425742574 @ 1
调用堆栈显示正在从外部代码调用文本编写器 WriteLine 函数以响应 MyControl.Width = NewValue;
当我的应用程序是为调试和发布而构建时会发生这种情况。
我没有打开跟踪或调试功能。
即使未定义 DEBUG 和 TRACE 也会发生这种情况。
我的应用程序没有提及或做任何与调试或跟踪相关的事情。
我不会对控制台做任何其他事情。
我的应用程序没有调用 System.Diagnostics 中的任何内容。
使用 C#、.NET 4.0、Windows 7 64 位、Visual Studio 2010。
这真让我抓狂。关于下一步尝试什么的任何建议?