[英]How to serialize IDictionary
有沒有人知道一種創造性的方法來序列化實現IDictionary的對象? ......沒有實施新課程?
如果實現IDictionary
的類是可序列化的(如Dictionary<K,V>
)並且K
和V
是可序列化的,那么標准的.NET序列化機制應該可行。
如果實現IDictionary
的類是可序列化的,但是K
和V
則可以使用兩個數組分別序列化鍵和關聯值:
// 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
,使用ReadObject
和WriteObject
,方法與Deserialize
和Serialize
。 它就像一個魅力。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.