我有一些来自VB.NET 1.1天的代码,它允许我动态检查是否在web.config中启用了Debug.我想为什么如果我可以让网络管理员启用调试,重新发明打开/关闭日志记录的轮子.这是我在VB.NET中使用的代码,它运行得很好:
ConfigurationSettings.GetConfig("system.web/compilation").Debug.ToString()
当我想将它转换为C#并在.NET 3.5中使用它时遇到了一些麻烦,它无法正常工作.另外,我想使用ConfigurationManager.GetSection的新构造.任何人都可以建议如何最好地阅读system.web/compilation/debug=true|false
价值?
非常感激!
使用:
HttpContext.Current.IsDebuggingEnabled
该属性实际上是查看web.config配置设置.如果使用Reflector查看它,您会发现它使用一些内部类获取实际的ConfigurationSection对象.
以下应该有效
var cfg=(System.Web.Configuration.CompilationSection) ConfigurationManager.GetSection("system.web/compilation"); if (cfg.Debug) { ... }
-Edit-我知道这并没有具体回答这个问题,因为你要求Web.Config - 它立即建议一个web.app,而不是在"运行时"决定,但它确实允许一个好方法检查它是否是调试模式.
另一方面,在同一个应用程序中,你不能在调试和发布模式之间进行理想的互换.-编辑 -
如何使用条件编译?
http://msdn.microsoft.com/en-us/library/aa691099(v=vs.71).aspx
bool isDebuggingEnabled = false #if debug isDebuggingEnabled = true; #endif
这肯定会最有意义,并不需要任何具体的参考?
只需确保项目中的DEBUG
常量已打开(参见图片)