从c#

时间:2019-07-02 21:05:20

标签: c# .net object caching memorycache

在控制台应用程序启动时,我有一个巨大的数据集正在从SQL数据库中检索,并且对该数据集执行了大量计算。由于每次访问数据库都很昂贵,因此我将数据集保存在内存缓存中以备将来使用。但是,问题是当我将缓存中的数据分配给对象时,将其复制为引用类型,并且对该对象的任何更改也会更改缓存对象中的数据。您能否提出一种方法来实现深度复制以将数据从缓存复制到类对象。这是我现在正在使用的一段代码:

现在,如果我更改测试对象,它也会更改缓存中的数据。您能建议如何为这段代码实现深层副本吗?

这是我现在正在使用的一段代码:

ObjectCache cache = MemoryCache.Default;

            if (cache["Test1234"] == null)
            {
                cache["Test1234"] = testobject;

            }
            else 
            {
              testobject= (clsTest)cache.Get("Test1234");                
            }

现在,如果我更改测试对象,它也会更改缓存中的数据。您能建议如何为这段代码实现深层副本吗?

该问题不是以下两个原因已回答的现有问题的副本: 1)由于访问限制,我没有能力标记很多可序列化的类。因此,这对我来说不是可行的解决方案。 2)我需要创建一个深层副本,并创建所有嵌套对象的深层副本。大多数答案对于创建最多1级的深层副本很有用。

希望这会有所帮助。

@Peter Duniho

0 个答案:

没有答案