我在一个组件中的基类,并在另一从基类继承了大量生成的类。尝试解析子类类型(SerializerT.cs的第248行)时,使用protobuf-net(r282)序列化基类型列表失败,因为该子类不在基类的程序集中。将课程移到一起并不是首选,我可以在List中传递这一点很重要。protobuf网〔脱〕跨越组件边界序列化
这是我标记的基类。所包含的类型根据需要标记为ProtoMember(x)
。
[ProtoContract]
[ProtoInclude(1,"SomeItemType")]
[ProtoInclude(2,"AnotherItemType")]
[ProtoInclude(190,"YetAnotherItemType")]
public abstract class BaseItem
{
}
作为边注,这是使用protobuf网以取代的BinaryFormatter为桌面应用和web服务的SOAP之间移动数据评估的一部分。
我可以做这种事吗?有没有更好的办法?我只是错过了一些明显的东西?另一个更长期的问题是,我应该做一些稍微不同的事情来准备最终迁移到3.5?
谢谢马克,正是我所期待的。使用完整的装配限定名称的窍门。由于我的SomeItemType在基类中不可用,因此typeof(SomeItemType)在这种情况下不可行。再次感谢。 – tsupe 2010-02-17 14:31:21