Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何连接Debug.Writeline()和Debug.Write()的替代目标_C#_Asp.net_.net - Fatal编程技术网

C# 如何连接Debug.Writeline()和Debug.Write()的替代目标

C# 如何连接Debug.Writeline()和Debug.Write()的替代目标,c#,asp.net,.net,C#,Asp.net,.net,我对.net世界比较陌生,我有一个解决方案,其中有数百个Debug.Writeline和Debug.Write。 我需要将消息发送到文本文件和数据库,而不是传统的输出 替换所有Debug.XXX行并将这些特定消息发送到我的目的地是一项单调乏味的任务,不推荐这样做 那么,我应该如何找到另一个目的地呢 一种方法是重写Debug.Write()功能,该功能不起作用 请帮助我并提前感谢您可以继承您自己的: 然后需要注册此类的实例(使用Trace.Listeners.Add(): 现在,对Debug.W

我对.net世界比较陌生,我有一个解决方案,其中有数百个Debug.Writeline和Debug.Write。 我需要将消息发送到文本文件和数据库,而不是传统的输出

替换所有Debug.XXX行并将这些特定消息发送到我的目的地是一项单调乏味的任务,不推荐这样做

那么,我应该如何找到另一个目的地呢

一种方法是重写Debug.Write()功能,该功能不起作用

请帮助我并提前感谢

您可以继承您自己的:

然后需要注册此类的实例(使用
Trace.Listeners.Add()


现在,对
Debug.Write()
Debug.WriteLine()
的所有调用都被转发到
MyTraceListener
实例的相应方法中。请注意,这只发生在调试版本中。在发布版本中,对
Debug.Write()
Debug.WriteLine()的调用
什么都不要做。

您可以继承自己的:

然后需要注册此类的实例(使用
Trace.Listeners.Add()



现在,对
Debug.Write()
Debug.WriteLine()
的所有调用都被转发到
MyTraceListener
实例的相应方法中。请注意,这只发生在调试版本中。在发布版本中,对
Debug.Write()
Debug.WriteLine()的调用
什么都不要做。

请注意,对
调试.WriteLine
及其同级的所有调用都将在发布版本中删除。请注意,对
调试.WriteLine
及其同级的所有调用都将在发布版本中删除。感谢您,我只需要在调试版本中提供帮助,但我有一个疑问,因为我的经验很短,creating只有一个tracer实例可以解决包含10个以上项目的整个解决方案中的问题?如果是的话,创建实例的最佳位置是什么?如果有人告诉你一些事情,很抱歉way@ManojKalluri是的,每个进程一个侦听器就足够了(无论进程加载多少个程序集)。在哪里放置代码取决于您的解决方案体系结构,我不能告诉您。感谢您的帮助,我只需要调试版本,但我有一个疑问,因为我的短期经验,只创建一个tracer实例将解决整个解决方案中的问题,该解决方案包含10多个项目?如果是这样,创建inst的最佳位置是什么抱歉,如果我告诉你了way@ManojKalluri是的,每个进程一个侦听器就足够了(不管进程加载了多少个程序集)。将代码放在哪里取决于您的解决方案体系结构,我不能告诉您这一点。
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
    }
}
var myListener = new MyTraceListener();
Trace.Listeners.Add(myListener);