继续我的追求,让protobuf-net屈从于我自己的意愿..
我已经看到了一些关于如何动态添加子类以便序列化程序能够编码子类的问题,比如this或this
我的情况有点不同,我有一个基类,它可能会在后期绑定的代码中得到子类,我想将其序列化为基类,并完全忽略子类的字段/属性。
我需要这样做的原因是,稍后当我反序列化数据时,子类的代码甚至都不可用,因此构造子类甚至是不可能的。
有没有办法限制/禁止子类序列化?
在我的例子中,我有一个列表,列表中的一些项是DerivedClass。
我想找到一种方法,使protobuf-net将所有内容序列化为BaseClass,并反序列化为BaseClass……
我试着查看代码,但没有找到太有用的东西。
发布于 2011-10-04 13:08:24
通常,该库非常注重发现派生类-并以不同于基类的方式对待它们。目前唯一的例外是代理类,特别是实体框架和NHibernate。对于一个整洁的解决方案,添加某种类型的“忽略子类”开关似乎很实用。但是,虽然这并不存在,但一种非常懒惰(和古怪)的方法是使用现有的NHibernate处理方式进行欺骗,例如:
namespace NHibernate.Proxy {
interface INHibernateProxy {}
}
...
public class SomeDerivedType : BaseType, INHibernateProxy {}然后,它将根据BaseType自动序列化。不过,它确实有一丝作弊的味道。
https://stackoverflow.com/questions/7640519
复制相似问题