CloudConfigurationManager GetSetting方法是否缓存?

时间:2012-11-20 18:05:48

标签: .net azure

是否有人知道您是否在调用CloudConfigurationManager GetSetting方法时遇到了性能问题?例如,它是否重新解析azure文件还是缓存了?我不确定是否应该添加自己的缓存/静态变量来改善通常称为连接字符串的内容的性能。

由于

3 个答案:

答案 0 :(得分:11)

source可在github上找到。

如果您查看源代码,可以看到它没有进行任何缓存,因此如果您看到性能问题,则可能需要实现自己的缓存。

GetSetting的正文显示了一个简单的回报:

value = GetValue("ServiceRuntime", name, GetServiceRuntimeSetting);

if (value == null)
{
    value = GetValue("ConfigurationManager", name, n => ConfigurationManager.AppSettings[n]);
}

return value;

答案 1 :(得分:2)

接受的答案可能不正确。

CloudConfigurationManager本身不会缓存,但这是因为它内部委托给ConfigurationManagerWebConfigurationManager执行缓存值

来自MSDN

  

对于<appSettings><connectionStrings>,您可以使用AppSettings和   ConnectionStrings属性。这些方法执行只读   操作,使用配置的单个缓存实例,并且是   多线程意识。

因此,即使您直接从CloudConfigurationManager访问,很可能也不会发生IO操作。

答案 2 :(得分:1)

不,它没有缓存,因为您建议您必须创建自己的缓存以提高性能。