gpt4 book ai didi

c# - 如何连接 Debug.Writeline() 和 Debug.Write() 的替代目的地

转载 作者:太空宇宙 更新时间:2023-11-03 21:00:41 25 4
gpt4 key购买 nike

我是 .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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com