5
我有很多序列化的對象保存爲XML,但我想向這些對象添加2個變量。如何更改序列化對象?
這是我的目標:
public class MyObject{
public Int32 MyVariables = 0;
}
該目的已經連載了不少,我想繼續讀了這些「老」文件到我的應用程序的能力。
但我需要添加一些變量來使物體更好,如:
public class MyObject{
public Int32 MyVariables = 0;
public Dictionary<string,MyEnum> MyDict = new Dictionary<string,MyEnum>();
}
任何人都可以提出來添加這些新變量的最佳方法是什麼?我實際上改變了MyObject並添加了字典,我相信它不再被正確讀取。
在此先感謝!
編輯:我也沒能捕捉異常的任何地方,看看它的對象讀取失敗時,我這樣做是這樣做的:
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
object obj = formatter.Deserialize(File.Open(Path, FileMode.Open));
編輯2:我相信這實際上可能是由於我使用Enum作爲字典的一部分,我在枚舉之上添加了[Serializable]
,它仍然不起作用 - 想法?
我認爲這會起作用(實際上,如果我只是將類型設置爲int而不是字典,它是默認情況下不可序列化的字典?) – Geesu 2012-04-19 03:46:03
您無法使用XML Serializer序列化字典。但是,有一些解決方法。我會嘗試挖掘一個鏈接。 – 2012-04-19 03:46:27
這裏有一個方法使用字典XML序列化器... http://johnwsaunders3.wordpress.com/2009/03/10/one-way-to-serialize-dictionaries/ – 2012-04-19 03:48:01