Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 序列化具有HashTable属性的对象并存储在CouchBase中_C#_Couchbase - Fatal编程技术网

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

C# 序列化具有HashTable属性的对象并存储在CouchBase中,c#,couchbase,C#,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缓存中检索到一个

我们的团队已选择作为应用程序的缓存。我们在这个缓存中存储的是如下所示的对象

public class CatalogEntity
{
    public int Id { get; set; }
    public string Name { get; set; }

    // this property gives us trouble
    public Hashtable Attributes { get; set;}
}
在我们的代码中,在从CouchBase缓存中检索到一个对象之后,我发现主要类型(
Id
Name
)的属性被正确反序列化,但是
哈希表
类型的
属性
没有反序列化并保持为JSON。例如,如果我有

var entity = new CatalogEntity();
entity.Attributes["foo"] = new Foo();
缓存中的对象将具有
属性[“foo”]
属性作为
foo
类的JSON表示


我想知道如何正确地序列化/反序列化
哈希表
类型?我是否应该将对象序列化为二进制,而将二进制流存储在CouchBase中?

是否需要使用哈希表?例如,你能用
字典来代替吗


我认为您看到的原因是Json.NET对哈希表进行序列化的最佳尝试(另请参见关于StackOverflow的问题:)。

谢谢您的回答。不幸的是,我正在处理一个遗留代码库,切换到字典并不是那么容易。但是链接的问题解释了为什么哈希表值没有反序列化。我最终手动反序列化这些值。