我有一个代码只能在调试模式下运行。
使用HttpContext.Current.IsDebuggingEnabled或“#if DEBUG ... #endif”更好吗?
谢谢,
答案 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 ...
)的优点是调试代码不会进入生产环境,因此执行它的可能性为零(假设您有有效的配置管理程序!)