使用HttpContext.Current.IsDebuggingEnabled或#if DEBUG更好吗?

时间:2011-07-29 10:02:09

标签: .net debugging

我有一个代码只能在调试模式下运行。

使用HttpContext.Current.IsDebuggingEnabled或“#if DEBUG ... #endif”更好吗?

谢谢,

3 个答案:

答案 0 :(得分:4)

这是完全不同的两件事!

HttpContext.Current.IsDebuggingEnabled

与当前的 web.config 设置相关

debug=true

,其中

#if DEBUG ... #endif

与构建时>项目配置调试/发布设置相关

小心!

答案 1 :(得分:2)

如果绝对不能将调试代码编译到您的发布程序集中,那么最好使用#if样式(或考虑使用conditional methods)。

使用#if DEBUG块(或条件方法)时,如果构建不是Debug构建,则代码将不会编译到程序集中,即DEBUG编译符号未定义。

答案 2 :(得分:1)

预处理器指令(#if DEBUG ...)的优点是调试代码不会进入生产环境,因此执行它的可能性为零(假设您有有效的配置管理程序!)