我们的实体模型中有一些复杂的类层次结构。我们为所有实体都有一个基类BaseEntity
,然后是从BaseEntity
派生的一些“二级”类,从任何“二级”类派生的一些“三级”类,以及很多“级别” 4“课程,来自任何”3级“课程。这意味着,我们有这样的事情:
依此类推......
现在,当使用protobuf-net通过WCF传输这些类型的实例时,只传输“4级”类的属性 - 基类中的所有属性都将丢失!
从其他几个StackOverflow线程(here,here和here)中,我读到这是默认行为,您有两个选项可以解决它:
[ProtoInclude]
属性。TypeModel
和AddSubType()
但是,由于我们有很多派生类,因此这些选项在我们的场景中都不可行。选项1意味着1级基类的数百个属性。选项2意味着大量调用AddSubType()
。
还有其他选择吗?
答案 0 :(得分:0)
最终,它需要了解它应该如何存储数据,以便您可以将其恢复。它不能只是猜测...所以:唯一可靠的方法是在某处定义模型。但是,这不一定是原始代码:例如,它可能存储在您在运行时包含和处理(通过AddSubType)的外部文件中。