【发布时间】:2011-11-05 21:34:05
【问题描述】:
我正在使用 Enyim。为 C# 缓存 memcached 客户端,服务器在 ubuntu 的最新版本上是 http://memcached.org
MemcachedClient mc = new MemcachedClient();
XmlDocument xmlDocument = new XmlDocument();
mc.Store(StoreMode.Set, "foo", xmlDocument);
object myXml= mc.Get("foo");
而 myXml 为空,为什么有办法存储我的对象。 目的 : 我正在尝试在 Memcached 的代码中替换 HttpCache,但使用 HttpCache 我可以将复杂对象添加到缓存中。
这里的 XmlDocument 是一个例子,但是对于一个简单的类它也不起作用
【问题讨论】:
-
您使用的内存缓存版本是什么?我建议你在 Windows 上使用this。
-
我在 ubuntu 上与 memcached.org 合作,在我更改所有服务器之前,您能否确认我使用您的解决方案可以存储复杂对象?
-
XmlDocument似乎不是二进制的[Serializable]。改用 XML 的字符串表示,即xmlDocument.OuterXml。 -
@chibacity 但是 XmlDocument 不是二进制可序列化的
-
@Christophe 我知道
XmlDocument不是二进制可序列化的,因此我的评论。我建议string因为它是二进制可序列化的。您的课程必须支持[Serializable]才能工作。我建议使用字符串,因为您可以转换回XmlDocument。要序列化您的自定义类,请参阅:msdn.microsoft.com/en-us/library/…。