Как открыть файл настроек приложения с помощью ConfigurationManager? - PullRequest
3 голосов
/ 19 октября 2011

Мой конфигурационный файл находится здесь:

"~/Admin/Web.config"

Я пытался открыть его с помощью приведенного ниже кода, но он не работал:

var physicalFilePath = HttpContext.Current.Server.MapPath("~/Admin/Web.config");
var configMap = new ConfigurationFileMap(physicalFilePath);
var configuration = ConfigurationManager.OpenMappedMachineConfiguration(configMap);
var appSettingsSection = (AppSettingsSection)configuration.GetSection("appSettings");

, когда запускается строка appsettings, выдаетследующее сообщение об ошибке:

Unable to cast object of type 'System.Configuration.DefaultSection' to type 'System.Configuration.AppSettingsSection'.

Мой Web.Config выглядит следующим образом:

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <appSettings>
    <add key="AdminUsername" value="Test1"/>
    <add key="AdminPassword" value="Test2"/>
  </appSettings>
  <connectionStrings></connectionStrings>
</configuration>

Как я могу получить настройки приложения?

Ответы [ 2 ]

4 голосов
/ 19 октября 2011

Для веб-приложения вам нужно использовать класс System.Web.Configuration.WebConfigurationManager и не нужно указывать абсолютный путь.

var web=System.Web.Configuration.WebConfigurationManager
          .OpenWebConfiguration("~/admin/web.config");

String appValue=web.AppSettings.Settings["key"].Value;
0 голосов
/ 19 октября 2011

Если вы ищете что-то для добавления в файл Web.config, а затем читаете его из кода. Вам нужно Пользовательские разделы конфигурации в Web.config

Смотрите здесь: Как определить пользовательские разделы web.config с потенциальными дочерними элементами и атрибутами для свойств? и здесь: Создание пользовательских разделов конфигурации в Web.config - 4GuysFromRolla.com

...