1

256kb から 18Mb のデータを含むオブジェクトを Android デバイスから WCF サービスに送信する必要があります。私は protobuf.net について知り、これが進むべき道であることに同意します。Androidでのprotobufの使用を示すほとんどの例は、次のようなクエリを作成するように設計されています:

www.webservice.com/API/MaxItems=10. 必要なのは、パラメーターだけでなく、BLOB 全体を Web サービスに送信する方法です。Android 2.3.3とWCF.Netを使用してこれをコーディングするための正しい方向に誰かが私を向けることができますか?

私のシナリオは次のとおりです。

Webservice は、.Net と Silverlight を使用するクライアントと、Android プラットフォームのクライアントにサービスを提供しています。Webservice は、protobuf を使用してファイルシステムと SQL からクライアントにデータを提供します。提供されるデータには、基本的なタイプと小さなバイナリ チャンクが含まれます。protobuf オブジェクトとして 4 ~ 50Kb。基本型のパラメーターを取る 17 個の関数と、パラメーターとして protobuf オブジェクトを取る 6 個の関数があります。関数の 1 つは、合計で最大 18Mb の 4 byte[] を持つ protobuf オブジェクトを受け取ります。

提供されるデータの特性により、protobuf は完全に一致します。

WebService API の要件の 1 つは、これらすべての機能を 1 つのインターフェイスに保持することです。

4

1 に答える 1

1

個人的には、そのシナリオ(androidなど)での最善の策は、通常のメモリ内シリアル化を使用してBLOBを作成し、利用可能なツール(http-post、WSE、ソケットなど)を使用して送信することだと思います。 BLOB、およびもう一方の端で逆シリアル化します。WCFにシリアル化/逆シリアル化を所有させることは、特に完全な.NETを使用していない場合、非常に困難です。このアプローチでは、WCFに多くのことを要求することはあまりないため、必要に応じてトランスポートの種類を完全に簡単に切り替えることもできます。

于 2012-04-20T11:44:28.403 に答える