2010-06-22 2 views
3

Cela semble être beaucoup demandé sur Internet, mais jusqu'à présent, mes recherches n'ont pas produit de solution. (Et, au moins pour l'instant, je n'ai pas accepté "cela ne peut pas être fait" comme une solution.).NET - Stocker un App.config avec une bibliothèque de classes

Dans sa description la plus simple, ce que j'essaie de faire est d'avoir un fichier de configuration dans un fichier. Projet de bibliothèque de classes NET disponible pour cette bibliothèque de classes dans toute application qui la référence. Ma configuration peut être simplifiée à 3 services WCF partageant une certaine logique de domaine. Une des choses qu'ils partagent est une dépendance injectée d'un enregistreur. Dans ce cas, j'ai une bibliothèque séparée qui implémente l'enregistreur (cette bibliothèque est ce qui est injecté) en utilisant log4net.

Dans cette configuration, chacun des 3 services a son propre fichier de configuration et chacun de ces fichiers de configuration doit configurer log4net. Ce que j'essaye de faire est complètement abstrait log4net dans la bibliothèque séparée de sorte que ces 3 services (et futurs services/applications, dont il y aura beaucoup) ne doivent pas porter cette configuration. Ils vont tous être configurés de la même manière, donc je préfère que ce soit dans un seul endroit. Jusqu'à présent, j'ai réussi à trouver du code qui permette un fichier de configuration localisé d'une bibliothèque d'appsettings (paires clé/valeur) et je peux y accéder. Mais je cherche une approche de fichier de configuration plus complète. Log4net a une section de configuration personnalisée qui est plus que des paires clé/valeur. (D'autres sections de configuration vont également être utilisées dans plusieurs applications, telles que la section system.serviceModel dans une bibliothèque commune utilisée par les applications client pour se connecter aux services WCF).

Est-ce que cela a du sens? Quelqu'un a-t-il déjà trouvé une solution à ce genre de problème?

Répondre

2

Vous ne pouvez vraiment pas avoir de fichiers .config avec une bibliothèque de classes de la même manière que pour les exécutables! Cependant, une bibliothèque de classes peut bien sûr lire et écrire des fichiers xml, ce qui vous permet de faire semblant dans une certaine mesure. This article de projet de code décrit une façon de le faire, je ne serais pas surpris s'il existe d'autres solutions similaires, puisque comme vous le dites, c'est une question commune.

+0

Je pense que le problème que je vais rencontrer dans cette approche (même si ça vaudra la peine d'être essayé au moins) sera avec les sections de configuration intégrées. Ce que je veux dire, c'est que je ne serais pas capable d'utiliser system.serviceModel mais que je devrais plutôt lancer le mien. Avec un codage suffisant, je peux créer manuellement les instances de service à partir de ma configuration créée manuellement. Mais il semble que cette approche sera insuffisante dans les bibliothèques tierces telles que log4net où elles ont leur propre section de configuration. Sauf s'il me manque quelque chose. – David

+0

@David: Je n'ai pas vraiment beaucoup utilisé Log4Net mais il y a d'autres personnes avec le même problème. Voici donc une discussion sur l'utilisation de Log4Net sans fichier de configuration http://osdir.com/ml/windows.dotnet.log4net.user/2004- 03/msg00004.html et voici une où la solution semble être d'avoir le lien du fichier de configuration vers un fichier de configuration log4net spécial http://www.mail-archive.com/[email protected]/msg03709. html, pourrait être quelque chose pour vous. –

Questions connexes