Je sais que je peux ouvrir des fichiers de configuration liés à un assembly avec la méthode ConfigurationManager.OpenExe(exePath)
statique, mais je veux juste ouvrir une configuration qui n'est pas liée à un assemblage. Juste un fichier de configuration .NET standard.Chargement de fichiers de configuration personnalisés
Répondre
les articles postés par Ricky sont très bons, mais malheureusement ils ne répondent pas à ta 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);
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;
}
}
, puis la récupération de valeurs par:
// retrieve appSettings node
XmlNode node = doc.SelectSingleNode("//appSettings");
Code Inaccessible détecté après 'throw new Exception ("Aucun fichier de configuration trouvée." , e); – Oybek
Je vais supprimer le retour null, il ne sera pas vraiment atteint. –
pourquoi utiliser XML quand vous avez de si bonnes classes de la bibliothèque .Net. Je ne suggère pas d'utiliser cela, pauvre sur le design. Que faire ensuite? implémenter une classe de chaînes différente ... considérez ceci. – Yuki
J'utiliser ConfigurationManager.OpenMappedExeConfiguration - http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.openmappedexeconfiguration(v=vs.110).aspx
@Oliver Par 'whatYouLikeExtension', voulez-vous dire que vous * devez * avoir * quelque chose * après' config.'? – Svish
@Svish: Je ne me souviens plus. As-tu essayé? – Oliver
@Oliver Got autour pour essayer maintenant, et semble bien fonctionner sans :) – Svish