gpt4 book ai didi

c# - 按值从缓存中获取对象

转载 作者:可可西里 更新时间:2023-11-01 08:45:51 27 4
gpt4 key购买 nike

摘要

我正在编写一个有几个对象缓存的应用程序。它需要工作的方式是从缓存中检索对象时:

object foo = CacheProvider.CurrentCache.Get("key");

foo 应该是原始对象的本地副本,而不是引用。实现这个的最佳方法是什么?到目前为止,我想到的唯一方法是使用 BinarySerializer 创建一个副本,但我觉得我缺少更好的方法。

详情

缓存实现的支持是任意的,因为它是基于提供者的。我需要支持任意数量的缓存,从 HttpRuntime 缓存到类似 Velocity 的缓存。这里的重点是缓存支持和消费者代码之间的层——该层必须确保返回对象的副本。有些缓存已经这样做了,但有些还没有(HttpRuntime 缓存就是其中之一)。

最佳答案

Rex - 我们在一个大型企业网络产品中实现了非常相似的东西,我们最终显式地创建了一个 IDeepCloneable 接口(interface),我们的许多对象都实现了该接口(interface)。有趣的是,我们用 BinarySerializer 支持它,仅仅是因为它是一种方便且几乎万无一失的方法来制作对象的深拷贝,而无需反射的所有麻烦或迫使开发人员编写和测试克隆方法。

它就像一个魅力。我们的团队已经停下来仔细考虑了好几次,我们还没有想出更好的选择。

关于c# - 按值从缓存中获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1157053/

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