Protobuf-Net 2.0.0.480 は、DataContract
orProtoContract
属性を使用して構造体をシリアル化でき、問題なく実行されています。
ただし、Serializer.PrepareSerializer<MyStruct>()
クレームMyStruct
は参照型でなければなりません。この制限が存在するのはなぜですか?
Protobuf-Net 2.0.0.480 は、DataContract
orProtoContract
属性を使用して構造体をシリアル化でき、問題なく実行されています。
ただし、Serializer.PrepareSerializer<MyStruct>()
クレームMyStruct
は参照型でなければなりません。この制限が存在するのはなぜですか?
公正な観察!これは、API のみがサポートされていた v1 からの影響class
です。v2 実装は を追加し、古いAPI を にRuntimeTypeModel
転送します。Serializer.*
RuntimeTypeMode.Default.*
この場合、答えは簡単ですwhere T : class
。v1 から存在していた制約を削除していないからです。これは、将来のビルドで削除される予定です。
今のところ、次の方法でもこれを行うことができます。
RuntimeTypeModel.Default[type].CompileInPlace();