Программно получите доступ к разделу <compilation/> web.config?

Возможно, проблема в вашем текущем инструменте, поскольку он может не поддерживать некоторый синтаксис XPath.

Вы можете попробовать lxml.html для анализа того же HTML-документа:

from lxml import html

source = """
Phrases
this
Phrases
this

test test

not this
""" dom = html.fromstring(source) dom.xpath(".//div[@class='phrase' and ./parent::div[@class!='extras']]")

Вывод:

[, ] #  Two elements found

или

dom.xpath(".//div[@class='phrase' and ./parent::div[@class!='extras']]/text()")

Вывод:

['this', 'this']

10
задан Dan Herbert 30 December 2008 в 20:14
поделиться

5 ответов

Использование:

using System.Configuration;
using System.Web.Configuration;

...

  CompilationSection configSection =
          (CompilationSection) ConfigurationManager.GetSection( "system.web/compilation" );

Можно затем проверить configSection.Debug свойство.

ПОДСКАЗКА: если необходимо знать, как получить значение из файла конфигурации, регистрировать machine.config файл Ваш \Windows\Microsoft.net\Framework\<version>\CONFIG папка. Там Вы видите, как все обработчики разделов конфигурации определяются. После того как Вы знаете название обработчика конфигураций (в этом случае, CompilationSection), можно искать его в документах .NET.

25
ответ дан 3 December 2019 в 13:22
поделиться

Простой способ проверить, работаете ли Вы в режиме отладки, состоит в том, чтобы использовать HttpContext. Свойство IsDebuggingEnabled. Это получает свой ответ от атрибута отладки элемента компиляции, который является тем же самым, которое Вы пытаетесь сделать.

23
ответ дан 3 December 2019 в 13:22
поделиться

В конце концов, можно всегда загружаться Web.config файл в XmlDocument и используйте XPath запрос для обнаружения!

XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("~/Web.config"));     
doc.SelectSingleNode("/configuration/system.web/compilation/@debug");

Однако я предлагаю, чтобы Вы использовали Configuration.GetSection метод для решения.

CompilationSection section = 
    Configuration.GetSection("system.web/compilation") as CompilationSection;
bool debug = section != null && section.Debug;
2
ответ дан 3 December 2019 в 13:22
поделиться

Наклоните Вас, просто загружают файл как регулярный XML-файл и используют XPath для получения узлов?

0
ответ дан 3 December 2019 в 13:22
поделиться

Попытайтесь использовать ConfigurationManager. Метод GetSection.

0
ответ дан 3 December 2019 в 13:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: