如何在C#中重定向调试输出?

如何在C#中重定向调试输出?,c#,debugging,textbox,output,C#,Debugging,Textbox,Output,目前,我使用以下方法编写了许多状态消息: Debug.Writeline("This is my status message"); 我希望能够创建一个方法,允许我通过Debug输出消息,或者将消息重定向到UI中的文本框。但是,调试和文本框对象不兼容。我如何做到这一点,使调用者可以使用相同的消息生成输出,并让调用方法决定将其发送到何处(即调试、UI,甚至日志文件)?创建自己的日志类,该类是调试类的桥梁 interface ILog { public void Log(); } publ

目前,我使用以下方法编写了许多状态消息:

Debug.Writeline("This is my status message");

我希望能够创建一个方法,允许我通过
Debug
输出消息,或者将消息重定向到UI中的文本框。但是,调试和文本框对象不兼容。我如何做到这一点,使调用者可以使用相同的消息生成输出,并让调用方法决定将其发送到何处(即调试、UI,甚至日志文件)?

创建自己的日志类,该类是调试类的桥梁

interface ILog {
   public void Log();
}

public DebugLog : ILog {
  public DebugLog(Debug d) {} //ctor that takes Debug Object
  public void Log(){}
}

public WindowLog : ILog {
  public WindowLog(Text t) {} //ctor that takes window log
  public void Log(){}
}

创建自己的日志类,该类是调试类

interface ILog {
   public void Log();
}

public DebugLog : ILog {
  public DebugLog(Debug d) {} //ctor that takes Debug Object
  public void Log(){}
}

public WindowLog : ILog {
  public WindowLog(Text t) {} //ctor that takes window log
  public void Log(){}
}

您可以创建自己的类,该类派生自
TraceListener
,如的可接受答案中所述


注意:接受的答案详细说明了如何为C#WinForms创建自定义跟踪侦听器,尽管问题是关于WPF的。

您可以创建自己的类,该类派生自
TraceListener
,如接受的答案中所述


注意:接受的答案详细说明了如何为C#WinForms创建自定义跟踪侦听器,尽管问题是关于WPF的。

使用
trace
,或类似log4net的东西。如果您不喜欢第三方日志库,这里有一个建议的方法来创建使用
跟踪
,或者类似log4net的东西。如果你不喜欢第三方日志库,这里有一个建议的方法来创建一个我会将这些方法设置为静态的,这样我就不必每次都记得重新创建
Log
类。有没有一种方法可以以多态方式实现这一点,这样我就可以传入Textbox.Text成员或调试对象,并以某种方式对两者使用相同的方法?我不确定自己的解释是否充分,因为我今天起得太早,而且我不是一个早起的人我会将这些方法设置为静态,这样我就不必每次都记得更新
Log
类。有没有一种方法可以多态地执行此操作,这样我就可以传入Textbox.Text成员或Debug对象,并以某种方式对两者使用相同的方法?我不确定自己的解释是否充分,因为我今天起得太早,而且我不是一个早起的人