2

Protobuf-Net 2.0.0.480 は、DataContractorProtoContract属性を使用して構造体をシリアル化でき、問題なく実行されています。

ただし、Serializer.PrepareSerializer<MyStruct>()クレームMyStructは参照型でなければなりません。この制限が存在するのはなぜですか?

4

1 に答える 1

1

公正な観察!これは、API のみがサポートされていた v1 からの影響classです。v2 実装は を追加し、古いAPI を にRuntimeTypeModel転送します。Serializer.*RuntimeTypeMode.Default.*

この場合、答えは簡単ですwhere T : class。v1 から存在していた制約を削除していないからです。これは、将来のビルドで削除される予定です。

今のところ、次の方法でもこれを行うことができます。

RuntimeTypeModel.Default[type].CompileInPlace();
于 2012-05-07T08:16:32.823 に答える