【发布时间】:2014-08-06 16:55:52
【问题描述】:
我有一个基类定义为:
[ProtoInclude(100, "Module.v1.DataObject.B, Module.v1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null")]
[ProtoInclude(101, "Module.v2.DataObject.B, Module.v2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null")]
public class A
{
[ProtoMember(1)]
public string Name;
}
派生类在 2 个不同的程序集中定义:
Module.v1 有
[Serializable]
[ProtoContract]
public class B: A
{
[ProtoMember(2)]
public int Key;
}
Module.v2 有
[Serializable]
[ProtoContract]
public class B: A
{
[ProtoMember(2)]
public int Key;
}
当我尝试序列化/反序列化其中之一时,例如。 Module.v2.DataObject.B,protobuf 抛出异常—— "一个类型只能参与一个继承层次Module.v2.DataObject.B"
您能帮我解决一下我在这里可能做错了什么吗?
【问题讨论】:
-
有趣;我得看看
-
“无法复制”(完整设置请参见答案)
-
谢谢马克!我错过了早些时候的回复 - 所以问题是项目有一些构建配置不匹配的解决方案解决了这个问题。
标签: inheritance protocol-buffers