У меня есть много сериализованных объектов, сохраненных как 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 и добавил словарь, и я считаю, что он больше не читается должным образом.
Заранее благодарен!
Edit: Я тоже не в состоянии поймать исключение в любом месте, чтобы увидеть, где он не при чтении объекта, я делаю это, чтобы сделать это:
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
object obj = formatter.Deserialize(File.Open(Path, FileMode.Open));
Edit 2: Я считаю, что это на самом деле может быть из-за того, что я использовал Enum как часть словаря, я добавил [Serializable]
над перечислением, и он все еще не работает - мысли?
Я думал, что это сработает (на самом деле, если я просто создаю тип int vs. dictionary, который он делает, это словарь не сериализуется по умолчанию?) – Geesu
Вы не можете сериализовать словарь с XML-сериализатором. Однако есть обходные пути. Я попытаюсь выкопать ссылку. –
Вот один из способов использования словаря с XML-сериализатором ... http://johnwsaunders3.wordpress.com/2009/03/10/one-way-to-serialize-dictionaries/ –