簡體   English   中英

如何序列化IDictionary

[英]How to serialize IDictionary

有沒有人知道一種創造性的方法來序列化實現IDictionary的對象? ......沒有實施新課程?

如果實現IDictionary的類是可序列化的(如Dictionary<K,V> )並且KV是可序列化的,那么標准的.NET序列化機制應該可行。

如果實現IDictionary的類是可序列化的,但是KV則可以使用兩個數組分別序列化鍵和關聯值:

// before serialization
IDictionary<string,int> dict;
string[] keys = dict.Keys.ToArray();
int[] values = dict.Keys.Select(key => dict[key]).ToArray();

// after deserialization
IDictionary<string,int> dict = new Dictionary<string,int>();
for (int i = 0; i < keys.Length; i++)
    dict.Add(keys[i], values[i]);

我認為你的意思是你必須序列化一部你無法控制的課程的字典?

簡而言之,您必須單獨序列化鍵和值。 要反序列化,請逐步執行鍵/值數組中的每個項目,然后將它們添加回字典中。

您可以使用System.Runtime.Serialization.DataContractSerializer ,使用ReadObjectWriteObject ,方法與DeserializeSerialize 它就像一個魅力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM