CF 3.5 を使用して Web サービスからデータを取得するための推奨される方法は何ですか? Web サービスから一連のテーブルを取得しています。
2 に答える
ジョンが指摘するように、それは実際にはデスクトップ通話と何ら変わりはありません。通常、IDEからサービスへの参照を追加して、Studioに呼び出しラッパーを生成させるか、手動でハンマーで削除することができます。デスクトップのシリアル化がデバイスの逆シリアル化に必要なものと一致しない可能性があるため、強く型付けされたDataSetを渡そうとしている場合は、ケースが少し異なる場合があります。それは本当にあなたの正確な使用シナリオに依存します。
呼び出しメカニズムに関係なく、注意すべきことの1つは、CFWebサービスの呼び出しがプロキシの生成に非常に遅いことです。プロキシはキャッシュされますが、最初の呼び出しで戻るまでに数秒かかる場合があります。良い習慣は、Webサービスに単純なダミーメソッド(または該当する場合は実際のメソッド)を公開させることです。このメソッドは、おそらくblittableタイプを返すだけです。アプリが起動したら、ワーカースレッドを生成してそのメソッドを呼び出します。これにより、プロキシが生成されます。次に、実際のデータのためにサービスを呼び出す必要がある場合、時間は、プロキシを生成するのではなく、呼び出しのサービスにのみ費やされます。
私はいつも WebRequest/WebResponse クラスを使用してきました。または、必要に応じて HttpWebRequest/HttpWebResponse クラス。これらは使用するのが少し面倒で、完全なフレームワークの WebClient クラスほど良くはありませんが、機能します。