我有一个基类在一个程序集中,还有一个大量从该基类继承的生成类在另一个程序集中。当使用protobuf-net (r282)对基类型的列表进行序列化时,尝试解析子类类型(SerializerT.cs的第248行)会失败,因为子类不在基类所在的程序集中。将这些类一起移动并不是首选的选项,重要的是我可以传递List。
这里是我的标记基类。包含的类型都用ProtoMember(x)
标记为必需。
[ProtoContract]
[ProtoInclude(1,"SomeItemType")]
[ProtoInclude(2,"AnotherItemType")]
[ProtoInclude(190,"YetAnotherItemType")]
public abstract class BaseItem
{
}
作为一个附注,这是评估使用protobuf-net代替BinaryFormatter在桌面应用程序和SOAP Web服务之间传输数据的一部分。
我能做到这种事吗?有更好的方法吗?我是否错过了一些明显的东西?另一个长期问题是,我是否应该做一些稍微不同的准备,以便最终转移到3.5?