2008-09-30 10 views
2

Nous disposons d'une solution .NET assez volumineuse avec plusieurs projets exécutables (winforms et programmes en ligne de commande). Actuellement, chacun de ces projets possède son propre app.config qui contient des chaînes de connexion, des paramètres de serveur de messagerie et autres. Comme vous pouvez l'imaginer, il n'est pas pratique d'apporter une modification à chaque fichier app.config chaque fois qu'un paramètre particulier doit être mis à jour.Partage des préférences d'application entre plusieurs projets

À votre avis, quelle est la meilleure pratique pour la gestion centralisée de ces paramètres? Jusqu'à présent, j'ai réfléchi à deux approches différentes. La première utilise une classe personnalisée (ou classes) qui contient les paramètres et est sérialisée et désérialisée à partir de XML. La deuxième approche consiste à définir un fichier app.config uniquement pour un seul projet et à utiliser ConfigurationManager.OpenExeConfiguration() pour y accéder.

Répondre

1

Créer le App.config sur votre projet de démarrage et lien statiquement sur les autres projets.

Vous pouvez lier statiquement en allant à Ajouter-> élément existant, et en cliquant sur le bouton Ajouter dans la fenêtre du navigateur de fichiers, il y a une petite flèche vers le bas sur le bouton Ajouter. Cliquez ici et l'option "Ajouter en tant que lien" sera affichée. Cela placera le même App.Config sur les deux projets, avec un seul fichier réel.

Si vos projets ont différentes App.Config avec seulement « certains » des paramètres qui sont les mêmes, pensez à vérifier le paramètre de fichier; Je veux dire, vous pouvez avoir plus d'un App.Config dans un projet: http://weblogs.asp.net/pwilson/archive/2003/04/09/5261.aspx

Créez simplement un fichier central common.config et pointez dessus.

+1

Bien que cela pourrait fonctionner quand je suis en développement et le débogage de la solution, je crains que cela ne fonctionnerait pas une fois déployé la solution et a besoin d'un utilisateur de modifier les paramètres. –

0

Personnellement, je conseillerais contre l'introduction d'une dépendance inutile sur un fichier .config d'un autre assemblage. L'utilisation d'une classe personnalisée avec sérialisation est plus propre dans ce scénario, mais vous vous exposez à des problèmes potentiels de versionnage et vous perdez les avantages potentiels offerts par app.config (gestionnaires de section, etc.).

1

Utilisez la directive ConfigSource avoir tous les paramètres chargés à partir d'un fichier central avec les valeurs partagées.

Questions connexes