web-dev-qa-db-fra.com

Chargement de fichiers de configuration personnalisés

Je sais que je peux ouvrir des fichiers de configuration liés à un assembly avec la méthode static ConfigurationManager.OpenExe(exePath), mais je veux simplement ouvrir une configuration qui n'est pas liée à un assembly. Juste un fichier de configuration standard .NET.

112
Adam

les articles publiés par Ricky sont très bons, mais malheureusement, ils ne répondent pas à votre question.

Pour résoudre votre problème, vous devriez essayer ce morceau de code:

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

Si vous avez besoin d'accéder à une valeur de la configuration, vous pouvez utiliser l'opérateur d'index:

config.AppSettings.Settings["test"].Value;
230
Oliver

Le fichier de configuration est juste un fichier XML, vous pouvez l'ouvrir par:

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

et plus tard, en récupérant des valeurs en:

    // retrieve appSettings node

    XmlNode node =  doc.SelectSingleNode("//appSettings");
9
Otávio Décio
4
Yuki