gpt4 book ai didi

c# - 缓存类型数据的最佳方法是什么?

转载 作者:太空狗 更新时间:2023-10-30 01:07:36 26 4
gpt4 key购买 nike

<分区>

看,我正在开发一个网站作为 MVC4 项目。该站点经常以非常简单的方式查询其数据库以获取各种设置:

private static T GetSetting<T>(string parameterName)
{
return (T)Convert.ChangeType(/* bla bla SQL query code */, typeof(T));
}

合乎逻辑的问题是 - 到底是什么,你每次想要获得任何设置时都要查询数据库吗?如果您在某些 for 循环或其他内容中需要它怎么办?

So我提出了缓存解决方案,我需要知道我是否已尽我所能。你怎么看?

internal static void ClearCache()
{
foreach (IDictionary cache in _caches)
cache.Clear();
}
private static readonly HashSet<IDictionary> _caches = new HashSet<IDictionary>();
private static class TypedCache<T>
{
private static readonly Dictionary<string, T> _cache = new Dictionary<string, T>();
internal static Dictionary<string, T> Cache { get { return _cache; } }
}

private static T GetSetting<T>(string parameterName)
{
T value;

if (!TypedCache<T>.Cache.TryGetValue(parameterName, out value))
{
_caches.Add(TypedCache<T>.Cache);
TypedCache<T>.Cache[parameterName] = value =
(T)Convert.ChangeType(/* bla bla SQL query code */, typeof(T));
}

return value;
}

我听说 IIS 可以在内存中创建我的 DLL 的多个副本(通过使用多个 IIS 进程)。顺便说一句,我怎么能强制他只用一个?正因为如此,我的整个想法都可能落空。

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