CloudConfigurationManager GetSetting方法是否缓存?

Bry*_*yan 12 .net azure

有没有人知道你是否采用了一个性能命中来调用CloudConfigurationManager GetSetting方法?例如,它是否重新解析azure文件还是缓存了?不确定我是否应该添加自己的缓存/静态变量来改善通常称为连接字符串的内容的性能.

谢谢

小智 11

可在github.

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

身体GetSetting显示简单的回报:

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

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

return value;
Run Code Online (Sandbox Code Playgroud)


Lif*_*ang 5

接受的答案可能不正确。

确实,CloudConfigurationManager它本身不缓存,但那是因为它在内部委托给ConfigurationManageror WebConfigurationManager,后者会缓存 value

来自MSDN

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

这样即使直接访问CloudConfigurationManager,很可能也不会产生IO操作。