我们有一个将 C# poco 对象加载到内存中的系统。(从磁盘上的数据源反序列化)。它们进一步缓存在 ObjectCache (MemoryCache.Default) 中,并通过 Repository 类公开。链条是这样的:
private Dictionary<string, T> itemsDictionary;
private Dictionary<string, T> ItemsDictionary
{
get
{
return itemsDictionary ?? (itemsDictionary = RepositoryLoader.Load());
}
}
private List<T> itemsList;
private List<T> ItemsList
{
get
{
return itemsList ?? (itemsList = ItemsDictionary.Values.ToList());
}
}
public List<T> All { get { return ItemsList; } }
RepositoryLoader.Load() - 这会将内存缓存中的项目缓存为 Dictionary ...
我的问题是——正如你所看到的,它也通过 2 个缓存属性进行——它是否会造成内存消耗的重复?:) 有没有办法优化这条链?