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