我对 .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()
不做任何事情。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句