53 votes

Utilisation de app.config avec une bibliothèque de classes

Souvent j'ai besoin de créer un .Net bibliothèque de classe qui nécessite une application.config pour des choses telles que la base de données de chaînes de connexion. Cependant, ces paramètres doivent être dans l'application d'appel de l'application.config ou web.config. Si je veux distribuer le fichier DLL à travers de multiples applications, il devient une douleur d'avoir à garder copie de ces paramètres dans l'application.config.

J'ai examiné manuellement la lecture de la configuration via le code à l'intérieur de la bibliothèque de classe, mais c'est aussi une grande douleur. Quelqu'un aurait-il des suggestions sur la meilleure façon de charger une application.paramètres de configuration à l'intérieur d'une bibliothèque de classe?

15voto

casperOne Points 49736

Je sais que ce n'est pas ce que vous voulez entendre, mais le point d'entrée du fichier de config est l'endroit logique pour mettre ces paramètres. Si chaque bibliothèque a besoin de son propre fichier de config alors il serait fastidieux d'avoir à modifier chaque fichier au lieu d'un seul.

Je voudrais avoir un fichier texte avec les paramètres par défaut inclus en tant que partie de votre bibliothèque (et dans le cadre du projet) qui peuvent être distribués avec la bibliothèque pour les paramètres par défaut de la configuration (il peut être copié et collé dans le fichier de config).

5voto

AaronS Points 4508

Une des choses que vous pouvez faire est d’avoir un fichier de paramètres séparé uniquement pour votre bibliothèque. Il vous suffit ensuite de faire référence à ce fichier dans votre fichier de configuration des applications d’entrée.

Voir la réponse acceptée dans cette question pour des informations à ce sujet.

3voto

Ian Nelson Points 20020

A chaque classe de la bibliothèque de définir les paramètres de configuration personnalisé dans un ConfigurationSection.

Puis ajouter des gestionnaires de section pour votre processus.exe.fichier de configuration.

Cet article MSDN est assez complet dans son explication, avec des exemples dans les deux VB et C#.

Il consiste à écrire quelques jolies code répétitif - Dmitryr a créé cet outil pour générer les sections de configuration à partir d'un fragment de XML de configuration, ce qui pourrait aider.

3voto

Joseph Korinek Points 131

Voici une alternative.

Au lieu de tenter de trouver des moyens de "fusion" de votre application.les configs, ou même le fait de placer les éléments de configuration dans votre DLL (et en essayant de travailler autour de ce qui est "by design") en premier lieu, essayez ceci:

Créer votre fichier DLL, mais où vous avez besoin d'une configuration, créer une Propriété publique. Lorsque vous instancier la classe dans la DLL, vous remplissez ces propriétés avec la configuration des éléments à partir de l'application propriétaire.

Désormais, la configuration est géré par le propriétaire de niveau, et la DLL est portable, vous devez transmettre ce que vous avez besoin d'elle au moment de l'exécution.

Pas plus DLL.config!

0voto

habakuk Points 532

C'est pas de (gros) problème de l'utilisation de son propre fichier de configuration pour chaque classe de la bibliothèque. Si vous utilisez vb.net vous pouvez ajouter des valeurs via la rubrique "mon projet" panneau sur la page "Paramètres".

La seule chose que vous avez à faire est d'appeler "Mon.Les paramètres.Enregistrer" sur votre classe, les paramètres de la bibliothèque (et pas seulement sur le principal de votre application fichier de paramètres).

Qui fonctionne avec c#, trop (Mais probablement besoin de plus de travail manuel).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X