具有正确反序列化继承功能的.net最佳序列化库

具有正确反序列化继承功能的.net最佳序列化库,.net,serialization,.net,Serialization,我需要一个.net序列化库,它比默认的xml序列化程序具有更好的功能。 问题是它不是多态的——假设您有类B:A{},并且序列化了类型B,您应该能够对其调用myBaseType=Deserialize(xml),并在myBaseType变量中返回类型B的实例 我有一个单元测试的实现,序列化库应该能够处理这个实现。如果要序列化的对象的子类型也是多态序列化类型,则此实现将无法工作,因此我需要更好的实现 谢谢 您可以使用.NET的二进制序列化程序,还是需要使用XML?我对.NET的XML处理也有类似的抱

我需要一个.net序列化库,它比默认的xml序列化程序具有更好的功能。 问题是它不是多态的——假设您有类B:A{},并且序列化了类型B,您应该能够对其调用myBaseType=Deserialize(xml),并在myBaseType变量中返回类型B的实例

我有一个单元测试的实现,序列化库应该能够处理这个实现。如果要序列化的对象的子类型也是多态序列化类型,则此实现将无法工作,因此我需要更好的实现


谢谢

您可以使用.NET的二进制序列化程序,还是需要使用XML?我对.NET的XML处理也有类似的抱怨,特别是在尝试序列化图形而不是树时


在需要XML正常工作的地方,我最终只是为每个类推出了自己的序列化代码。

如果您能够处理附加的详细信息,那么将类型信息嵌入到结果流的序列化程序可能是最好的

.Net提供的类型过于冗长,并且执行您可能不需要的操作,但当您对流进行反序列化时,它只会返回相应的对象(无需指定类型,只需将根对象强制转换为您知道的类型)


作为附带的好处,它将正确处理对象图中的循环和共享引用。

支持大多数继承路由(即使规范不支持)。有一个已知的小故障(我正在解决;-p)-但它涵盖了大多数选项。

看起来很棒。你说的有点冗长是对的,但它是有效的!