Hello,
Ma problématique en quelques mots :
Je développe actuellement une solution en C# .Net framework 3.5, qui contient un certain nombre de projets, dont un WebService, un client en WPF et plusieurs bibliothèques de classes. (D'autres clients à venir)
Dans le cadre de cette solution, il existe un certain nombre de paramètres, tantôt techniques tantôt fonctionnels, concernant par exemple une URL d'un WebService (tech.), des noms des transactions (tech.), la longueur des champs des paramètres (fonc.).
Je souhaiterai centraliser l'intégralité des paramètres fonctionnels pour qu'ils puissent être utilisés par l'ensemble des clients (WebService, client lourd WPF), les paramètres techniques quant à eux sont répercutés - voire dupliqués si commun - dans chacun des clients.
Pour se faire, j'ai créé un bibliothèque de classe GlobalSettings qui possède un fichier MySettings.settings qui contient ses différents paramètres. Pour parer aux restrictions de scope, j'ai créé une classe SettingsHandler qui permet d'accéder en lecture à ses différents settings.
Mon problème :
J'ai bien une centralisation des paramètres fonctionnels, le soucis c'est que du coup, quand je déploie mon application cliente (par exemple le WebService), je ne peux plus modifier les paramètres fonctionnels "à chaud" puisque c'est encapsulé dans la dll relative à GlobalSettings. Ce que je souhaiterai c'est de pouvoir modifier, indépendamment de GlobalSettings, les paramètres fonctionnels depuis un fichier de configuration, pour pouvoir ainsi faire différer les paramètres fonctionnels selon les environnements de déploiement du client (recette, pre-prod, prod).
Est-il possible de préciser au projet GlobalSettings que son fichier MySettings.settings ne soit pas encapsulé dans la dll mais bien visible et modifiable par l'application ayant une référence sur ce projet ?
N'hésitez pas à me demander de préciser certains points qui vous paraissent flous !
Merci d'avance !
Partager