反序列化为不同版本的类型

时间:2015-05-13 16:51:11

标签: .net c#-4.0

我正在寻找一种能够反序列化到对象的不同版本的方法。

现在我已经将我的xml字符串反序列化为我的对象的实例。 我的努力是使用Kellermans .Net比较实用程序来检测我的反序列化对象是否具有与序列化之前相同的内容。

为简单起见,我们假设一切都很好,将对象序列化为xml字符串。

public class CompareHelper
   {
            public static ComparisonResult IdenticalContentInObject<T>(string serializedXml, T obj) where T : class
            {
                var deserialized= SerializeHelper.DeserializeFromString<T>(serializedXml);
                var compareLogic = new CompareLogic();
                var result = compareLogic.Compare(obj, deserialized);
                return result;
            }
    }

我正在调用我的比较器助手,如下所示:

var result = CompareHelper.IdenticalContentInObject<V1.MyClass>(mySerializedXml, instanceOfMyClass);

现在我可以为版本2执行以下操作:

var result = CompareHelper.IdenticalContentInObject<V2.MyClass>(mySerializedXml, instanceOfMyClass);

有没有一种通用的方法可以解析我的方法的两个版本的类,让我的帮助器类遍历类型?

我当然不能这样做:

var result = CompareHelper.IdenticalContentInObject<V1.MyClass, V2.MyClass>(instanceOfMyClass); // Also there can be x amount of versions of MyClass

我希望你理解这个以编程方式拼图。

0 个答案:

没有答案