2009-02-03 3 views
91

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

ответ

204

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

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

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

@Oliver По 'whatYouLikeExtension', вы имеете в виду, что вы * должны * иметь * что-то * после' config.'? – Svish

+1

@Svish: Я не помню. Ты пробовал? – Oliver

+3

@Oliver Пойди, чтобы попробовать сейчас, и, кажется, отлично работает без :) – Svish

6

конфигурационный файл только файл 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"); 
+0

недостижим код обнаружен после того, как 'певд Exception («Нет файла конфигурации найден.» , e); – Oybek

+0

Я удалю обратный нуль, он не будет достигнут. –

+7

Почему использовать XML, когда у вас есть такие классные классы из библиотеки .Net. Я бы не предложил использовать это, плохой дизайн. Что дальше? реализовать другой класс строк ... рассмотрим это. – Yuki

Смежные вопросы