Question

J'utilise actuellement RoleEnvironment.GetConfigurationSettingValue(propertyName) Pour obtenir la valeur d'un paramètre défini dans mon fichier de configuration de webrole (CSDEF + CSCFG). Ok, ça sonne bien.

Cela fonctionne bien si le paramètre existe mais a échoué avec une exception si le paramètre n'est pas défini dans le CSDEF et le CSCFG.

Je migration d'une application existante vers Azure qui a de nombreux paramètres de configuration dans web.config. Dans mon code, pour lire une valeur de réglage, j'aime tester: s'il existe dans la configuration de la webrole (CSDEF + CSCFG), je l'ai lu à partir d'ici, sinon je l'ai lu avec ConfigurationManager à partir de web.config. Cela empêcherait de migrer tous les paramètres à partir de mon web.config et de laisser en personnaliser un lorsque l'application est déjà déployée.

Y a-t-il un moyen de faire cela ?

Je ne veux pas encapsuler le GetConfigurationSettingValue Dans un essai / catch (et lire sur web.config si j'entre le hic) parce que c'est vraiment une manière laide (et surtout ce n'est pas efficace de performance!).

Merci !

Était-ce utile?

La solution

Mise à jour pour 1.7 Azure SDK. La classe CloudConfigurationManager a été introduite. Cela permet à un seul appel GetSetting de regarder d'abord dans votre CSCFG, puis de retomber sur web.config si la clé n'est pas trouvée.

http://msdn.microsoft.com/en-us/library/jj157248

PRE 1.7 La réponse simple du SDK est non. (Que je connais)

Le sujet le plus intéressant est de considérer la configuration comme une dépendance. J'ai trouvé qu'il était avantageux de traiter les paramètres de configuration comme une dépendance afin que la mise en œuvre du support puisse être modifiée au fil du temps. Cette implémentation peut être un faux pour les tests ou quelque chose de plus complexe comme le passage de .config /.cscfg à une implémentation de base de données pour les solutions multi-lensènes.

Compte tenu de ce wrapper de configuration, vous pouvez écrire ce TryGetSet en tant que méthode interne pour quelles que soient vos options de configuration. Lorsque cette fonctionnalité est ajoutée aux membres de l'environnement Roleen, vous n'auriez qu'à changer cette implémentation interne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top