问题描述
在 Azure 网站中,我总是使用以下代码从配置的应用设置中获取一些值:
In an Azure Websites I was always using the following code to fetch some values from the config's app settings:
string property = WebConfigurationManager.AppSettings["property"];
就在几天前,我偶然发现了 CloudConfigurationManager,有了它我可以得到这样的属性:
Just a couple of days ago I stublemd upon CloudConfigurationManager, and with it I can get the property like so:
string property = CloudConfigurationManager.GetSetting("property");
虽然 CloudConfigurationManager 似乎更适合云使用,但我从未遇到过 WebConfigurationManager 的任何问题.
Although CloudConfigurationManager seems like it's better fitted to cloud use, I never had any issues with WebConfigurationManager.
- 我应该使用 CloudConfigurationManager 吗?
- 两者有什么区别?
- 在什么情况下 CloudConfigurationManager 的行为会不同于
WebConfigurationManager?
推荐答案
CloudConfigurationManager 让我们无论身处何种环境都可以读取配置文件.
CloudConfigurationManager enables us to read configuration file regardless of the environment we are in.
因此,不要编写特定于环境的代码语句,例如用于 web.config 文件:
So instead of writing environment specific code statements e.g., for web.config file:
WebConfigurationManager.AppSettings["MySetting"]
对于 ServiceConfiguration.cscfg 文件:
For ServiceConfiguration.cscfg file:
RoleEnvironment.GetConfigurationSettingValue("MySetting")
我们可以编写下面的语句,它将从所有配置文件(即 app.config、web.config 和 ServiceConfiguration.cscfg)中读取值.
We can write the below statement, which will read values from all the configuration files i.e., app.config, web.config and ServiceConfiguration.cscfg.
CloudConfigurationManager.GetSetting("MySetting")
这篇关于CloudConfigurationManager 与 WebConfigurationManager?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!