1

ProtoBuf.netでオブジェクトのコレクションのデシリアライズに問題があります。バイト配列で正しくシリアル化され、そのバイト配列をWCF RiaサービスからSilverlightに渡して、結果を逆シリアル化しようとしています。reaサービスよりprotobuf.netでデシリアライズ

私はSerializer.Serialize<T>(...)/Serializer.Deserialize<T>(...)を使用してシリアル化し、byte[]MemoryStream経由)をWCF RIA経由で送信しています。 Silverlightでデシリアライズしようとすると

、それはエラーを与える:

Invalid callback signature in ComplexObject.OnDeserializing

+0

あなたが間違った署名を示唆しているようなデイコールバックコールバックを持っているように、より多くのコードがなくても難しいbutit * sounds *があります。おそらくもっとコードを投稿すると分かりますか?既存のRIAコールバックに偽陽性がある場合、私はそれを回避できると確信しています。また、使用しているprotobuf-netのバージョンを明確にするのに役立ちます。 –

+0

こんにちはマーク、私は2.0.0.423を使用しています。以下は、私がシリアル化しようとしているオブジェクトです。 (複数の特性があるが、私はサンプルコードでそれを限定)ProtoContract()] パブリッククラスユーザ { パブリックユーザ() { } [ProtoMember(1)] 公衆INTユーザーID {得ます。セット; } [ProtoMember(2)] パブリック文字列FirstName {get;セット; } [ProtoMember(3)] 公開ストリングLastName {get;セット; } } トラブルシューティングに役立つその他のコードを教えてください。 – Pawan

+0

このオブジェクトはドメインサービスに入力され、クライアントに送信する前にこのオブジェクトをシリアル化します。次に、クライアント上で私はそれを逆シリアル化しようとします(それがエラーの原因です)。 – Pawan

答えて

0

これは、我々は技術的にSerializationContextパラメータとの衝突のシリアル化のコールバックでなく、唯一の特定のプラットフォーム上で、「バグ」と呼んでいます。基本的に、少しのコードが#ifの間違った側にありました(Silverlightなどのビルドからバイナリフォーマッタ関連のコードを削除する)。

これに関するテストはまっすぐに行われており、これはr431で修正されています。また、エラーメッセージを改善して、メソッド名(他の場所に既に存在していて、そこから奇妙に使用されていないコード)を含むより有用なメッセージを提供しました。

私はあなたのために(ソースからのビルド対)の新しいジップアーカイブが必要です知ってみましょう。

Annoyingly、実際の "やっている"コードはうまくいきました。それは正気ではない正直さのチェックでした。

+0

情報のために、パラメータを持たないコールバック*はうまくいきました; p –

+0

残念ながら、SVNは私たちのためにブロックされています:(あなたはこのサイトにzipアーカイブを追加できますか? – Pawan

+0

@Pawanが更新されました - 私に教えてください –

関連する問題