我们具有的价值观存在缓企图书馆缓存块。该访问缓存的项目,这是一个列表,修改的价值观。我们不想缓存项目得到受影响。

因此,首先,我们回新列表(IEnumerator的CachedItem) 这确保访问增加和删除项目的影响小的原始缓存的项目。

但是,我们发现,所有实例列表我们回到访问是活着!对象关系的图表表明的关系之间的这种名单和EnterpriseLibrary.CacheItem.

所以我们改变了的返回是一个新的克隆的名单。为此,我们用个皇宫 说的 (从项目的数据选择新的DataClass(项目)).ToList() 甚至当你做如上所述,组织结构显示存在一定关系之间的这种名单和CacheItem.

我们不能做任何事情来创建一个克隆列项目,这是目前在企业库缓存,没有任何关系与缓?!

没有正确的解决方案

其他提示

你会做一个深刻的克隆的列表,即添加一个克隆的列表中的每个对象(及克隆的任何对象,它们可能包含,我建议将具有克隆()方法为你做这个),一个新的名单。正如上述评论,参考基准,无论多少次你复制。

这是我们如何克隆的项目时,拉他们出来的高速缓存。在对象都必须标明序列化。

        using (MemoryStream buffer = new MemoryStream())
        {
            BinaryFormatter formatter = new BinaryFormatter();
            formatter.Serialize(buffer, objectToClone);
            buffer.Position = 0;
            object temp = formatter.Deserialize(buffer);
            return temp;
        }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top