あるアセンブリに基本クラスがあり、別のアセンブリに基本クラスから継承する多数の生成されたクラスがあります。サブクラスが基本クラスのアセンブリにないため、subclassType(SerializerT.csの248行目)を解決しようとすると、protobuf-net(r282)を使用して基本タイプのリストをシリアル化できません。クラスを一緒に移動することは好ましいオプションではなく、リストを渡すことができることがかなり重要です。
これが私のタグ付けされた基本クラスです。含まれているタイプには、必要に応じてマークが付けられてProtoMember(x)
います。
[ProtoContract]
[ProtoInclude(1,"SomeItemType")]
[ProtoInclude(2,"AnotherItemType")]
[ProtoInclude(190,"YetAnotherItemType")]
public abstract class BaseItem
{
}
補足として、これは、デスクトップアプリとSOAPWebサービス間でデータを移動するためにBinaryFormatterを置き換えるためにprotobuf-netを使用することを評価することの一部です。
このようなことはできますか?もっと良い方法はありますか?明らかな何かが欠けているだけですか?別の長期的な質問は、3.5への最終的な移行に備えるために少し異なることをする必要があるかどうかです。