Загрузка пользовательских файлов конфигурации - PullRequest
109 голосов
/ 03 февраля 2009

Я знаю, что могу открыть файлы конфигурации, связанные со сборкой, с помощью статического метода ConfigurationManager.OpenExe(exePath), но я просто хочу открыть конфигурацию, не связанную со сборкой. Просто стандартный файл конфигурации .NET.

Ответы [ 3 ]

224 голосов
/ 03 февраля 2009

статьи, опубликованные Рики, очень хороши, но, к сожалению, они не отвечают на ваш вопрос.

Чтобы решить вашу проблему, попробуйте этот код:

ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
configMap.ExeConfigFilename = @"d:\test\justAConfigFile.config.whateverYouLikeExtension";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);

Если вам нужен доступ к значению в конфигурации, вы можете использовать оператор индекса:

config.AppSettings.Settings["test"].Value;
8 голосов
/ 03 февраля 2009

Конфигурационный файл - это просто файл XML, вы можете открыть его:

private static XmlDocument loadConfigDocument()
{
    XmlDocument doc = null;
    try
    {
        doc = new XmlDocument();
        doc.Load(getConfigFilePath());
        return doc;
    }
    catch (System.IO.FileNotFoundException e)
    {
        throw new Exception("No configuration file found.", e);
    }
    catch (Exception ex)
    {
        return null;
    }
}

и последующие извлечения значений по:

    // retrieve appSettings node

    XmlNode node =  doc.SelectSingleNode("//appSettings");
4 голосов
/ 08 апреля 2014

Я бы использовал ConfigurationManager.OpenMappedExeConfiguration.

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