在 Visual Studio 2010 中,如果您转到项目的属性并转到“生成”选项卡,则会有一个“定义 TRACE 常量”复选框。这相当于执行 #define TRACE。
System.Diagnostics.Trace 的所有方法都有一个[Conditional("TRACE")]
在他们旁边。
我的问题是why你会把它关掉吗?我的意思是,如果您没有定义任何跟踪侦听器,那么您就不会填写日志或其他内容。我只是觉得很奇怪。如果您正在努力调用 Trace,为什么您不想通过 App/Web.config 来控制它,而是通过编译器开关来控制它,这排除了在没有情况下重新打开它的可能性重新编译。
我错过了什么吗?当然,这对性能来说不会那么糟糕,对吧?
想必这个复选框相当于/define:TRACE
编译器选项。您可能希望在发布版本中关闭此选项,因为您不希望最终用户出于某种原因(例如安全性)看到跟踪输出,或者为了提高性能。当然,性能的提升取决于开启时完成的工作量,但是条件属性 http://msdn.microsoft.com/en-us/library/system.diagnostics.conditionalattribute.aspx将导致编译器从生成的IL中完全删除函数调用(包括任何字符串格式等),因此它could产生重大影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)