Как получить доступ к web.config из пользовательского элемента управления ASP.NET? - PullRequest
1 голос
/ 20 июля 2011

Внутри моего файла web.config у меня есть такой код:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    ...
    <section name="UninstallSurveySettings" type="dashboard.UninstallSurveyConfig" />
  </configSections>
  ...
  <UninstallSurveySettings>
    <add key="fileLocation" value="C:\inetpub\wwwroot\output\" />
  </UninstallSurveySettings>
   ...
</configuration>

Мне нужно иметь доступ к этому полю из моего пользовательского элемента управления. Элемент управления может быть перенесен на любой веб-сайт, и ему необходимо проверить web.config этого сайта для значения fileLocation в UninstallSurveySetting.

Я попробовал пару разных подходов, но безуспешно. Любая помощь по этому вопросу будет принята с благодарностью.

Ответы [ 4 ]

3 голосов
/ 20 июля 2011

Намного проще в использовании AppSettings .

Web.config:

<configuration>    
    <appSettings>
        <add key="fileLocation" value="C:\inetpub\wwwroot\output\" />
    </appSettings>    
</configuration>

Код:

string location = System.Configuration.ConfigurationManager.AppSettings["fileLocation"];

Если ваш раздел станет более сложным, то:

var section = (NameValueFileSectionHandler)ConfigurationManager.GetSection("UninstallSurveySettings");
if (section != null)
{
    // access section members
}

приписка

Может быть, вы хотите использовать ConfigurationSection класс вместо обработчика.

0 голосов
/ 02 августа 2011

Мне удалось решить эту проблему, создав для нее класс конфигурации и поместив этот код в файл web.config:

<section name="UninstallSurveyConfig" type="dashboard.UninstallSurveyConfig" />
..

<UninstallSurveyConfig dirFileLocation="C:\inetpub\wwwroot\build\output" webFileLocation="~/output" />
0 голосов
/ 20 июля 2011

, используя System.Configuration.ConfigurationManager, и вы сможете получить то, что вы хотите от web.config

0 голосов
/ 20 июля 2011

В ASP.NET MVC 3 тег не может быть прямым потомком (это приводит к ошибке конфигурации).

Как насчет добавления вашего ключа в раздел . Затем вы можете легко получить к нему доступ через коллекцию ConfigurationManager.AppSettings .

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