J'ai une DLL .NET qui doit lire les paramètres de configuration de son fichier de configuration. Habituellement, le fichier de configuration est placé dans le même répertoire que la DLL. Mais comment puis-je lire le fichier de configuration si la DLL est GAC'ed, parce que je peux mettre seulement les DLL dans le GAC, et pas ses fichiers de configuration.Fichiers de configuration pour les assemblages dans GAC
Répondre
L'utilisateur doit-il configurer la DLL? Si c'est le cas, la DLL doit utiliser les paramètres de configuration du fichier app.config, et non sa propre configuration. Le fichier app.config doit être stocké dans le même répertoire que l'application. Si non, alors vous pourriez aller de deux façons différentes. Vous pouvez apporter des modifications au fichier machine.config afin que votre DLL puisse les trouver. Je ne ferais pas ça. Vous pouvez également stocker la configuration dans une classe de paramètres. Ceux-ci peuvent être remplacés via la configuration, mais vos valeurs par défaut seront définies dans le code généré pour la classe de paramètres via les attributs et donc l'absence d'un fichier de configuration n'affectera pas votre Dll lorsque les valeurs par défaut sont nécessaires.
Je suis d'accord avec tvanfosson la DLL Gac'ed lira à partir du chemin de l'application. Mais vous pouvez également informer le dll qui est le chemin de cette façon:
System.Configuration.ExeConfigurationFileMap fileMap = new System.Configuration.ExeConfigurationFileMap();
fileMap.ExeConfigFilename = "THE PATH TO THE CONFIG";
System.Configuration.Configuration cfg =
System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(fileMap, System.Configuration.ConfigurationUserLevel.None);
string thevalue=cfg.AppSettings.Settings[variable].Value;
Vous pouvez utiliser AppDomain.CurrentDomain.BaseDirectory depuis la DLL ne sera pas exécutée par lui-même, vous avez juste besoin d'obtenir Executable répertoire de fichiers.
Quelque chose comme:
var appDomain = AppDomain.CurrentDomain.BaseDirectory;
string sFileName = appDomain.Replace("\\bin\\Debug", "");
sFileName = sFileName + "Config\\config.xml";
Désolé puisque c'est la première fois que je réponds ici ... le code n'est pas bien formaté :( –
- 1. Fichiers de configuration pour les objets GAC
- 2. énumération des assemblages dans GAC
- 3. Les assemblages placés dans le GAC obtiennent-ils une confiance totale?
- 4. Signe de code assemblages .NET ou juste la configuration?
- 5. Fichiers de ressources et assemblages de satellites
- 6. Chargement des assemblages
- 7. fichiers de configuration pour le déploiement .NET Crypter les
- 8. Des bibliothèques python pour analyser les fichiers de configuration apache?
- 9. Gérer les fichiers de configuration avec WiX
- 10. différents fichiers de configuration pour différents serveurs
- 11. relocaliser les fichiers de configuration d'apache
- 12. Utilisation de BuildManager.GetType pour rechercher les assemblages dans WPF
- 13. Clutter dans les assemblages C++/CLI mixtes
- 14. Utilisation de variables dans les fichiers de configuration
- 15. Séparation des responsabilités dans les assemblages
- 16. Comment faire pour que MSBuild référence les bons assemblages?
- 17. Comment configurer ClickOnce pour les assemblages multifiliers
- 18. Fichiers de configuration avec COM
- 19. Fichiers de configuration par assembly
- 20. Utilisation des paramètres d'application dans les assemblages
- 21. Surveiller la fréquence à laquelle les assemblys sont chargés à partir de GAC
- 22. Enregistrement COM et GAC
- 23. Comment puis-je automatiser l'installation des assemblages sur le GAC via un réseau?
- 24. Dupliquer System.Web dans GAC!
- 25. Utilisation de Clickonce avec les fichiers de configuration xml
- 26. Cryptage des fichiers de configuration pour le déploiement
- 27. Comment puis-je extraire les alias pour les fichiers de configuration shell?
- 28. Configuration de l'explorateur de fichiers Vim
- 29. Comment gérez-vous les fichiers de configuration et les bibliothèques intégrés dans les webapps java?
- 30. Les DLL doivent-elles avoir leurs propres fichiers de configuration?
tvanfosson avait une bonne réponse mais je pense que ceci est une réponse plus appropriée. – Keith