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.
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;
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");
J'utiliserais ConfigurationManager.OpenMappedExeConfiguration
.