还记得上边在项目属性中选中的那个define Trace constant选项吗?那个选项的作用是,如果你选中了,那么程序在编译的时候就会把Trace的相关代码编译到dll中,在VS调试的时候可以输出信息,而且部署到服务器上依然可以有用。有人说,服务器上不是没有VS吗?其实Trace类的输出方向是可以重定位的,我们可以使其输出到文本文件或者windows Log记录中。
public class ControlTraceListener : TraceListener { private Control _control; private StringSendDelegate _invokeWrite; private delegate void StringSendDelegate(string msg); public ControlTraceListener(Control target) { _control = target; _invokeWrite = new StringSendDelegate(SendString); } public override void Write(string message) { _control.Invoke(_invokeWrite, new object[] { message }); } public override void WriteLine(string message) { _control.Invoke(_invokeWrite, new object[] { message + Environment.NewLine }); } private void SendString(string msg) { _control.Text += msg; } }
Debug与Trace工具类的应用,布布扣,bubuko.com
原文地址:http://blog.csdn.net/sundacheng1989/article/details/28250033