Как проверить, включен ли отладчик в web.config
У меня есть код из моего VB.NET 1.1 дня, который позволил мне динамически проверить, включен ли Debug в web.config. Я подумал, зачем заново изобретать колесо при включении/выключении регистрации, если бы я мог просто включить веб-администратора для отладки. Вот код, который я использовал в VB.NET, который работал отлично:
ConfigurationSettings.GetConfig("system.web/compilation").Debug.ToString()
Когда я захотел преобразовать это в С# и использовать его в .NET 3.5, я столкнулся с некоторыми проблемами, и это не сработало. Кроме того, я хотел бы использовать новую конструкцию ConfigurationManager.GetSection. Может ли кто-нибудь предложить, как лучше всего читать значение system.web/compilation/debug=true|false
?
Очень ценно!
Ответы
Ответ 1
Использование:
HttpContext.Current.IsDebuggingEnabled
Это свойство действительно рассматривает настройку конфигурации web.config. Если вы посмотрите на него с помощью Reflector, вы обнаружите, что он получает фактический объект ConfigurationSection, используя некоторые внутренние классы.
Ответ 2
следующее должно работать
var cfg=(System.Web.Configuration.CompilationSection) ConfigurationManager.GetSection("system.web/compilation");
if (cfg.Debug)
{
...
}
Ответ 3
-Edit-
Я знаю, что это не отвечает конкретно на вопрос, так как вы просили Web.Config, который сразу же предлагает web.app и не решен в "run-time", но он действительно позволяет проверить, действительно ли это режим отладки.
В другой заметке вы не идеально поменяли бы режим отладки и выпуска в одном приложении.
-Изменение -
Как насчет использования условной компиляции
http://msdn.microsoft.com/en-us/library/aa691099(v=vs.71).aspx
bool isDebuggingEnabled = false
#if debug
isDebuggingEnabled = true;
#endif
Это, несомненно, будет иметь наибольший смысл и не требует каких-либо конкретных ссылок?
Просто убедитесь, что константа DEBUG
включена в вашем проекте (см. рисунок)
![enter image description here]()