как я могу получить дочерние узлы раздела <location>в web.config? - PullRequest
1 голос
/ 08 ноября 2011

Я знаю имя HttpHandler , и мне нужно получить раздел location , содержащий этот обработчик. Поэтому мне нужно получить все разделы location в моем файле web.config, затем получить раздел HttpHandlers и проверить, совпадает ли его имя с теми, которые мне нужны:

<location path="myhandler">
  <system.web>
    <httpHandlers>
      <add verb="GET" path="Handler" type="location_element.MyHandler,location_element"/>
    </httpHandlers>
  </system.web>
</location>

Я нашел, как получить местоположение раздел:

Configuration config = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
ConfigurationLocationCollection locations = config.Locations;
foreach (ConfigurationLocation location in locations)
{
    //code
}

Но у location есть только свойство Path, и я не могу получить дочерние элементы этого раздела. Я обнаружил, что способ состоит в том, чтобы использовать IConfigurationSectionHandler , и вот описание того, как создать обработчик пользовательской конфигурации . Но проблема в том, что раздел location не является пользовательским разделом, поэтому я не могу заставить его использовать свой собственный sectionHandler, как это сделано в примере с MSDN.

1 Ответ

2 голосов
/ 08 ноября 2011

Просто вызовите метод OpenConfiguration(), чтобы открыть внутреннюю конфигурацию.

http://msdn.microsoft.com/en-us/library/system.configuration.configurationlocation.openconfiguration.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...