Jon, beaucoup d'avis ont été donnés qui ne répondaient pas correctement à votre question.
Je vais vous donner MON OPINION et ensuite vous dire comment faire exactement ce que vous avez demandé.
Je ne vois pas pourquoi une assemblée ne pourrait pas avoir son propre fichier de configuration. Pourquoi le premier niveau d'atomicité (est-ce un vrai mot ?) se situe-t-il au niveau de l'application ? Pourquoi pas au niveau de la solution ? C'est une décision arbitraire, une meilleure supposition et en tant que telle, une OPINION. Si vous deviez écrire une bibliothèque de journalisation et que vous vouliez inclure un fichier de configuration pour celle-ci, qui serait utilisé globalement, pourquoi ne pourriez-vous pas vous accrocher à la fonctionnalité de paramètres intégrés ? Nous l'avons tous fait... essayer de fournir une fonctionnalité "puissante" à d'autres développeurs. Comment ? En faisant des hypothèses qui se traduisent par des restrictions. C'est exactement ce que MS a fait avec le cadre de paramètres, donc vous devez le "tromper" un peu.
Pour répondre directement à votre question, il suffit d'ajouter manuellement le fichier de configuration (xml) et de le nommer pour qu'il corresponde à votre bibliothèque et pour inclure l'extension "config". Exemple :
MyDomain.Mylibrary.dll.Config
Ensuite, utilisez le ConfigurationManager pour charger le fichier et les paramètres d'accès :
string assemblyPath = new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath;
Configuration cfg = ConfigurationManager.OpenExeConfiguration(assemblyPath);
string result = cfg.AppSettings.Settings["TEST_SETTING"].Value;
Notez que cela prend entièrement en charge la hiérarchie de machine.config, même si vous avez explicitement choisi le fichier de configuration de l'application. En d'autres termes, si le paramètre n'est pas présent, il sera résolu à un niveau supérieur. Les paramètres remplaceront également les entrées du fichier machine.config.
3 votes
Vous pouvez lire le fichier de configuration de votre projet exécutable à partir de votre bibliothèque.