私はprotobuf-net(バージョン2.0.0.621)を使用しています。リストタイプを直列化する際に問題があります.Tは自分のクラスです(何が含まれていても問題ありません)私はMyClass型のインの一般的なリストを作成して次に<T> protobuf-net例外のサロゲートを使用して
public class MyClass
{
public int Number { get; set; }
}
[ProtoContract]
MyClassSurrogate
{
[ProtoMember(1)]
public int Number { get; set; }
}
:
ProtoBuf.Meta.RuntimeTypeModel.Default.Add(typeof(MyClass), false).SetSurrogate(typeof(MyClassSurrogate));
MyClassのを:サロゲートは、サロゲートが、このように設定されているT.
のために設定されていますタンス、アイテムとそれを記入し、このようにそれをシリアル化:問題は、デシリアライゼーションで発生
ProtoBuf.Serializer.Serialize(stream, list);
、私は暗黙のオペレータ変換における代理に「ヌル」を得続ける:
static public implicit operator MyClassSurrogate(MyClass myClass)
し、「MyClassの' 無効である。
代理を削除してproto属性でMyClassを飾ると、すべて正常に動作します。
私が間違っていることを教えてもらえますか?
ありがとうございました。暗黙のオペレータへの変換はnullチェックを追加
役に立たなかった場合はコメントを無視してください。ただ、プロトコルバッファを使用したことはありません。とにかく、質問はかなり基本的なようですが、これはあなたが正しい方向に向いていますか? http://stackoverflow.com/questions/6498438/protobuf-net-cannot-serialize-type-data-how-can-i-define-type-data-with-protoc – bas