visual-studio – 在.NET / Visual Studio中定义TRACE常量

在Visual Studio 2010中,如果转到项目的属性并转到构建选项卡,则会出现一个“定义TRACE常量”复选框。这相当于做一个#define TRACE。

System.Diagnostics.Trace的所有方法都有一个[Conditional(“TRACE”)]。

我的问题是,你为什么会把这个?我的意思是,如果你没有定义任何跟踪监听器,那么它不会像你要填充一个日志或东西。它对我来说感觉很奇怪。如果你正在努力调用Trace,为什么不想通过App / Web.config来控制它,而是通过一个编译器开关来控制它,这个开关排除了重新开启它的可能性重新编译。

我缺少什么?当然,它不能是不好的性能,对吧?

假定此复选框等同于/ define:TRACE编译器选项。您可能希望为发布版本关闭此选项,因为您不希望最终用户出于某种原因(例如安全性)看到跟踪输出,或者提高性能。当然,性能的提高将取决于它的工作量,但Conditional attribute将导致编译器从生成的IL完全删除函数调用(包括任何字符串格式化等),所以它可以使有显着性差异。
http://stackoverflow.com/questions/8303004/define-trace-constant-in-net-visual-studio

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:visual-studio – 在.NET / Visual Studio中定义TRACE常量