2009-02-03 7 views
91

Ich weiß, dass ich Konfigurationsdateien öffnen kann, die sich auf eine Baugruppe mit der statischen ConfigurationManager.OpenExe(exePath)-Methode beziehen, aber ich möchte nur eine Konfiguration öffnen, die nicht auf eine Baugruppe bezogen ist. Nur eine Standard-.NET-Konfigurationsdatei.Laden benutzerdefinierter Konfigurationsdateien

Antwort

204

die von Ricky geschrieben Artikel sind sehr gut, aber leider Sie beantworten Ihre Frage nicht.

Ihr Problem zu lösen Sie dieses Stück Code versuchen sollte:

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

@Oliver Mit 'whateverYouLikeExtension' meinst du, dass du * irgendwas * nach' config.' haben musst *? – Svish

+1

@Swish: Ich kann mich nicht erinnern. Hast du es versucht? – Oliver

+3

@Oliver Habe es geschafft, jetzt zu versuchen, und scheint ohne zu funktionieren :) – Svish

6

Die Konfigurationsdatei wird nur eine XML-Datei, können Sie es durch öffnen:

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

und später Werte Abrufen von:

// retrieve appSettings node 

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

Unreachable Code entdeckt, nachdem 'throw new Exception ("Keine Konfiguration gefunden Datei." , e); '. – Oybek

+0

Ich werde die Rückgabe Null entfernen, es wird nicht wirklich erreicht werden. –

+7

Warum verwenden Sie XML, wenn Sie so großartige Klassen aus .Net-Bibliothek haben. Ich würde nicht vorschlagen, dies zu verwenden, schlecht im Design. Was als nächstes? Implementieren Sie eine andere String-Klasse ... berücksichtigen Sie dies. – Yuki

Verwandte Themen