Как изменить сериализованный объект?

У меня есть много сериализованных объектов, сохраненных в формате 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]над перечислением, и это все еще не работает - мысли?

5
задан Shadow The Princess Wizard 19 April 2012 в 08:46
поделиться