1
我想使用protobuf-net v2序列化/反序列化包含hashtable屬性的自定義類。使用協議緩衝區(.NET)序列化哈希表
[ProtoContract]
public class MyClass
{
[ProtoMember(1)]
public Hashtable MyHashTable { get; set; }
}
當我打電話Serializer.Serialize(...)出現異常: 沒有類型定義的串行:System.Collections.Hashtable
我試着修改:
[ProtoContract]
public class MyClass
{
[ProtoMember(1, DynamicType = true)]
public Hashtable MyHashTable { get; set; }
}
但我有另一個例外: 類型不是預期的,並且不能推斷出合同:System.Collections.DictionaryEntry
也許有人知道我如何序列化散列表?
是否要序列化存儲在散列表或散列表本身中的對象? –
在反序列化之後存儲散列表並使用它將會很好,但是如果有一種方法只存儲散列表中的對象 - 這是正確的。 –
protobuf-net目前不直接支持這種情況,我不確定這是我急於支持的一種情況。在基於合約的序列化程序中,*意圖*是提前知道數據的形狀。例如,一個'Dictionary'可以工作* fine *,因爲它非常清楚這意味着什麼以及數據將包含什麼。 –