2009-02-03 17 views
91

So che posso aprire i file di configurazione relativi a un assieme con il metodo statico ConfigurationManager.OpenExe(exePath) ma voglio solo aprire una configurazione che non è correlata a un assieme. Solo un file di configurazione .NET standard.Caricamento file di configurazione personalizzati

risposta

204

gli articoli pubblicati da Ricky sono molto buoni, ma purtroppo non rispondono alla tua domanda.

Per risolvere il problema si dovrebbe provare questo pezzo di codice:

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

@Oliver Con 'WhateverYouLikeExtension', vuoi dire che * devi * avere * qualcosa * dopo' config'? – Svish

+1

@Svish: non riesco a ricordare. Hai provato? – Oliver

+3

@Oliver Trovato per provare ora e sembra funzionare bene senza :) – Svish

6

Il file di configurazione è solo un file XML, è possibile aprirlo:

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; 
    } 
} 

e in seguito il recupero di valori da:

// retrieve appSettings node 

    XmlNode node = doc.SelectSingleNode("//appSettings"); 
+0

codice irraggiungibile rilevato dopo 'throw new Exception ("Nessun file di configurazione trovato." , e); '. – Oybek

+0

Toglierò il risultato null, non sarà davvero raggiunto. –

+7

perché usare XML quando si hanno classi così grandi dalla libreria .Net. Non suggerirei di usare questo, povero sul design. Cosa succederà? implementa una diversa classe di stringhe ... considera questo. – Yuki

Problemi correlati