Как программно получить местоположение configSource из файла конфигурации - PullRequest
3 голосов
/ 02 декабря 2011

Кто-нибудь знает, как я могу получить значение configSource с помощью стандартного API?

<appSettings configSource="AppSettings.config" />

Или мне нужно проанализировать web.config в XML, чтобы получить значение?

Ответы [ 5 ]

3 голосов
/ 02 декабря 2011

Вам необходимо загрузить AppSettingsSection , затем получить доступ к его свойству ElementInformation.Source.

Ссылка выше содержит информацию о том, как получить доступ к этому разделу.

1 голос
/ 02 декабря 2011

Необходимо использовать диспетчер конфигурации, как упомянуто @competent_tech.

//open the config file..
Configuration config= ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
//read the ConfigSource
string configSourceFile = config.AppSettings.SectionInformation.ConfigSource;
1 голос
/ 02 декабря 2011

Попробуйте

  ConfigurationManager.AppSettings["configSource"]

вам нужно добавить: using System.Configuration; пространство имен в вашем коде

0 голосов
/ 02 декабря 2011

Не удалось заставить API правильно загрузить раздел AppSettings, используя предложения @dbugger и @competent_tech.

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

System.Configuration.AppSettingsSection.

В конечном итоге XML-маршрут прошел столько же строк кода:

XDocument xdoc = XDocument.Load(Path.Combine(Server.MapPath("~"), "web.config"));
var query = from e in xdoc.Descendants("appSettings")
            select e;

return query.First().Attribute("configSource").Value;

Спасибо всем за указатели.

0 голосов
/ 02 декабря 2011

Вы можете использовать:

<appSettings>
   <add  key="configSource" value="AppSettings.config"/>
   <add  key="anotherValueKey" value="anotherValue"/>
   <!-- You can put more ... -->
</appSettings>

И получить значение:

string value = ConfigurationManager.AppSettings["configSource"];
string anotherValue = ConfigurationManager.AppSettings["anotherValueKey"];

не забудьте:

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