gpt4 book ai didi

configuration - azure : can we check if a setting exists before trying to read it?

转载 作者:行者123 更新时间:2023-12-04 06:26:10 25 4
gpt4 key购买 nike

我目前使用 RoleEnvironment.GetConfigurationSettingValue(propertyName) 来获取 WebRole 配置文件 (csdef + cscfg) 中定义的设置的值。好的,听起来不错。

如果设置存在,则此方法效果很好,但如果 csdef 和 cscfg 中未定义该设置,则失败并出现异常。

我正在将现有应用程序迁移到 Azure,该应用程序在 web.config 中有许多配置设置。在我的代码中,要读取设置值,我想测试:如果它存在于 webRole 配置(csdef + cscfg)中,我从这里读取它,否则我使用 ConfigurationManager 从 web.config 读取它。这将阻止从我的 web.config 迁移所有设置,并允许在应用程序已部署时自定义设置。

有办法做到这一点吗?

我不想将 GetConfigurationSettingValue 封装在 try/catch 中(如果我输入 catch,则从 web.config 中读取),因为这确实是一种丑陋的方式(而且大多数情况下它的性能效率不高) !)。

谢谢!

最佳答案

1.7 Azure SDK 更新。引入了CloudConfigurationManager类。允许单个 GetSetting 调用首先在您的 cscfg 中查找,如果未找到 key ,则返回到 web.config。

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

1.7 之前的 SDK简单的答案是否定的。 (据我所知)

更有趣的主题是将配置视为依赖项。我发现将配置设置视为依赖项是有益的,这样支持实现就可以随着时间的推移而改变。该实现可能是假的测试或更复杂的东西,例如从 .config/.cscfg 切换到 Multi-Tenancy 解决方案的数据库实现。

有了这个配置包装器,您可以将 TryGetSetting 编写为内部方法,无论您的配置选项来源是什么。当此功能添加到 RoleEnvironment 成员时,您只需更改该内部实现。

关于configuration - azure : can we check if a setting exists before trying to read it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6018138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com