繁体   English   中英

make protobuf-net serialize子类作为基类?

[英]make protobuf-net serialize subclasses as the base class?

我正在使用Protobuf-net(使用Servicestack)。 我有一种情况,我希望某个类被序列化为完全类,即使特定实例是继承者。 Protobuf-net可以这样做吗? 我不关心继承人,也不希望他们被发送给我的客户,他们没有正确的东西来反序列化他们。

目前,答案就是“不”。 令人讨厌的是,它支持大多数代码,因为它适用于Entity Framework,NHibernate等代理类型(它们被实现为应该被视为基类型的子类型),但我还没有将此作为可选的“忽略子类型”功能公开。 从理论上讲,它应该是一个接线的案例。 如果您的继承模型只是一个额外的级别(即合同类型是Foo ,并且您给它一个SuperFoo ,其中SuperFoo : Foo ),那么可以通过假装为NHibernate来欺骗它 (它检查接口/名称空间名称 - 它实际上并不引用NHibernate本身,以减少依赖项):

namespace NHibernate.Proxy.DynamicProxy
{
    interface IProxy { }
}
...
class SuperFoo : Foo, IProxy {...}

然而! 我应该补充:

  • 考虑到这是我想直接/正式支持的事情
  • 上面的方法会稍微减慢一点,因为它通过反射来检查: 正确地做,我想让它“直接”(常规类型检查ets;在运行时没有反射)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM