序列化一个具有HashTable属性的对象并存储在CouchBase中

本文关键字:对象 存储 CouchBase 属性 HashTable 一个 序列化 | 更新日期: 2023-09-27 17:54:56

我们的团队选择Couchbase作为应用程序的缓存。我们在缓存中存储的对象是这样的

public class CatalogEntity
{
    public int Id { get; set; }
    public string Name { get; set; }
    // this property gives us trouble
    public Hashtable Attributes { get; set;}
}

在我们的代码中,从CouchBase缓存中检索对象后,我发现主类型(IdName)的属性被正确反序列化,但Hashtable类型的Attributes没有被反序列化,保持为JSON。例如,如果我输入

var entity = new CatalogEntity();
entity.Attributes["foo"] = new Foo();

缓存中的对象将具有Attributes["foo"]属性作为Foo类的JSON表示。

我想知道如何使Hashtable类型正确序列化/反序列化?我应该将对象序列化为二进制,而不是将二进制流存储在CouchBase中吗?

序列化一个具有HashTable属性的对象并存储在CouchBase中

您需要使用Hashtable的原因是什么?例如,您可以使用Dictionary<string,string>来代替吗?

我认为你看到的原因是Json。. NET对序列化哈希表的最佳尝试(参见StackOverflow: serialize hashtable using Json.Net)