私は protobuf-net (バージョン 2.0.0.621) を使用しており、T が自分のクラスであり (内容は関係ありません)、T にサロゲートが設定されている List 型のシリアル化に問題があります。
サロゲートは次のように設定されます。
ProtoBuf.Meta.RuntimeTypeModel.Default.Add(typeof(MyClass), false).SetSurrogate(typeof(MyClassSurrogate));
私のクラス:
public class MyClass
{
public int Number { get; set; }
}
[ProtoContract]
MyClassSurrogate
{
[ProtoMember(1)]
public int Number { get; set; }
}
次に、タイプ MyClass インスタンスの汎用リストを作成し、項目を入力して、次のようにシリアル化します。
ProtoBuf.Serializer.Serialize(stream, list);
問題は逆シリアル化で発生します。暗黙的な演算子変換のサロゲートで「null」を取得し続けます。
static public implicit operator MyClassSurrogate(MyClass myClass)
'myClass' は null です。
サロゲートを削除して MyClass を proto 属性で装飾すると、すべて正常に動作します。
私が間違っていることを教えてもらえますか?
ありがとう。