我是 .net 世界的新手,我有一个包含数百个 Debug.Writeline 和 Debug.Write 的解决方案。 我需要将消息发送到文本文件和数据库,而不是传统的输出。
替换所有 Debug.XXX 行并将这些特定消息发送到我的目的地是一项乏味且不推荐的任务。
那么我应该如何连接另一个目的地?
一种方法是覆盖无法正常工作的 Debug.Write() 功能。
请帮助我并提前致谢
最佳答案
可以继承自己的TraceListener
:
public class MyTraceListener : TraceListener
{
// called (in debug-mode) when Debug.Write() is called
public override void Write(string message)
{
// handle/output "message" properly
}
// called (in debug-mode) when Debug.WriteLine() is called
public override void WriteLine(string message)
{
// handle/output "message" properly
}
}
然后您需要注册此类的一个实例(使用 Trace.Listeners.Add()
:
var myListener = new MyTraceListener();
Trace.Listeners.Add(myListener);
现在所有对 Debug.Write()
和 Debug.WriteLine()
的调用都被转发到 MyTraceListener
实例的相应方法. 请注意 然而,这仅发生在 DEBUG 构建中。在 RELEASE 版本中,对 Debug.Write()
和 Debug.WriteLine()
的调用不会执行任何操作。
关于c# - 如何连接 Debug.Writeline() 和 Debug.Write() 的替代目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45864852/