首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有正确反序列化继承能力的.net的最佳序列化库

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

Stack Overflow用户
提问于 2009-01-24 16:19:02
回答 3查看 1.4K关注 0票数 2

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

我在http://refactormycode.com/codes/710-polymorphic-xml-serializer有一个具有单元测试的实现,序列化库应该能够处理这些单元测试。如果要序列化的对象具有子类型,而子类型也是多态序列化类型,则此实现将不起作用,因此我需要更好的实现。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-01-24 17:39:06

如果您可以处理额外的冗长,那么使用序列化程序将类型信息嵌入到结果流中可能是最好的选择。

.Net提供了SoapFormatter,它过于冗长,并且做了您可能不需要的事情,但是当您反序列化流时,它只会返回适当的对象(不需要指定类型,只需将根对象强制转换为您知道的类型)。

作为一个额外的好处,它将正确地处理对象图中的循环和共享引用。

票数 1
EN

Stack Overflow用户

发布于 2009-01-24 16:41:09

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

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

票数 0
EN

Stack Overflow用户

发布于 2009-01-24 21:09:30

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/476239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档