首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制protobuf-net继承“树”

限制protobuf-net继承“树”
EN

Stack Overflow用户
提问于 2011-10-04 04:54:07
回答 1查看 481关注 0票数 5

继续我的追求,让protobuf-net屈从于我自己的意愿..

我已经看到了一些关于如何动态添加子类以便序列化程序能够编码子类的问题,比如thisthis

我的情况有点不同,我有一个基类,它可能会在后期绑定的代码中得到子类,我想将其序列化为基类,并完全忽略子类的字段/属性。

我需要这样做的原因是,稍后当我反序列化数据时,子类的代码甚至都不可用,因此构造子类甚至是不可能的。

有没有办法限制/禁止子类序列化?

在我的例子中,我有一个列表,列表中的一些项是DerivedClass。

我想找到一种方法,使protobuf-net将所有内容序列化为BaseClass,并反序列化为BaseClass……

我试着查看代码,但没有找到太有用的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-04 13:08:24

通常,该库非常注重发现派生类-并以不同于基类的方式对待它们。目前唯一的例外是代理类,特别是实体框架和NHibernate。对于一个整洁的解决方案,添加某种类型的“忽略子类”开关似乎很实用。但是,虽然这并不存在,但一种非常懒惰(和古怪)的方法是使用现有的NHibernate处理方式进行欺骗,例如:

代码语言:javascript
复制
namespace NHibernate.Proxy {
    interface INHibernateProxy {}
}
...
public class SomeDerivedType : BaseType, INHibernateProxy {}

然后,它将根据BaseType自动序列化。不过,它确实有一丝作弊的味道。

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

https://stackoverflow.com/questions/7640519

复制
相关文章

相似问题

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