1

protobuf.netを使用して、モバイルデバイスとバックエンドサービス間でクラスをシリアル化しますが、ユーザーの「コンテキスト」に基づいて、クライアントに返送される内容を調整する必要があります。

通常、これを行うには、ISerializableインターフェイスを実装し、コンテキスト値を調べて、何をシリアル化するかを決定します。同様に、コンストラクターでは、提供された値を逆シリアル化します。

しかし、ISerializableはprotobuf.netに実装/サポートされていないように見えるので(理由がわかります)、「ShouldSerialize*」および「OnSerializing」アプローチを採用することでこれを回避しました。ただし、これは、StreamingContextを各クラスに格納する必要があることを意味します。私たちは潜在的にそれをグローバルに固執する可能性がありますが、これも正しく感じられません。

たとえば、protobuf.net形式のみを使用してシリアル化するが、外部から提供されるコンテキストの影響を受けてシリアル化されるものを使用するなど、必要なものを実現するためのより良い方法はありますか?

4

1 に答える 1

0

良い質問です。現在サポートされているパターン(ShouldSerialize *など)は完全にBCLから「そのまま」借用されるため、コンテキストはありませんが、コールバックと同じ方法でパラメーターをサポートできない理由はありません。実際、サポートするコールバックの場合ほとんどすべての使用法(コンテキストの有無など)-したがって、ここでそれらをサポートしない正当な理由は考えられません。

現在サポートされていないと言っても過言ではありませんが、サポートされている可能性があります。これが役立つことをお知らせください。

于 2012-04-20T01:15:33.690 に答える