2009-02-03 138 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); 
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

可達代碼後發現`拋出新的異常(「沒有找到配置文件。」 ,e);`。 – Oybek 2012-11-09 10:30:25

+0

我將刪除返回null,它不會真正達到。 – 2012-11-09 14:10:57