Est-il un moyen de remplacer ConfigurationManager.AppSettings?
Je veux vraiment être en mesure d'avoir un moyen de prendre une application qui obtient ses paramètres à l'aide de ConfigurationManager.AppSettings["mysettingkey"] pour avoir ces paramètres proviennent d'une base de données centralisée au lieu de l'application.fichier de configuration. Je peux faire un personnalisé section de configuration pour la manipulation de ce genre de chose, mais je ne veux vraiment pas d'autres développeurs sur mon équipe à avoir à changer leur code afin d'utiliser mon nouveau DbConfiguration section personnalisée. Je tiens simplement à être en mesure d'appeler AppSettings la façon dont ils l'ont toujours fait, mais à ce qu'il soit chargé à partir d'une base de données centrale.
Des idées?
Vous devez vous connecter pour publier un commentaire.
Si vous n'avez pas l'esprit de piratage dans le cadre et vous pouvez raisonnablement supposer que l' .net framework version de l'application est en cours d'exécution sur (c'est à dire que c'est une application web ou d'une application intranet), alors vous pourriez essayer quelque chose comme ceci:
s_configSystem
domaine privé est un détail d'implémentation deConfigurationManager
et cela pourrait changer dans un futur cadre de presse ou n'existe pas du tout (par exemple mono a un champ nommé configSystem au lieu de cela).Quoi que vous fassiez, vous aurez besoin d'ajouter une couche de redirection? ConfigurationManager.AppSettings["clé"] sera toujours regarder dans le fichier de configuration. Vous pouvez faire un ConfigurationFromDatabaseManager mais ce résultat à l'aide de différents syntaxe d'appel:
Je ne suis pas sûr que vous pouvez le remplacer, mais vous pouvez essayer la méthode Add de AppSettings pour ajouter votre DB paramètres au moment de la présentation commence.
Je voudrais essayer d'écrire une application de démarrage, et charger les paramètres de la base de données pour le domaine d'application. Ainsi, l'application ne sais rien à propos de la façon dont c'est la configuration est généré.
À l'aide de machiene.config mène directement dans le dll-enfer 2.0.
Si vous pouvez vous enregistrer vous avez modifié le fichier de configuration de disque, vous pouvez charger alternative fichier de config dans différents domaine d'application:
Il apparaît qu'il y a un moyen de le faire dans .NET 3.5 par la définition de la directive allowOverride attribut dans la appSettings section de définition de la machine.config. Cela vous permet de remplacer la totalité de l'article dans votre propre application.le fichier de configuration et spécifiez un nouveau type de le gérer.