9

古い Microsoft Web サービス テクノロジ (WSE など) と、 Java 呼び出し WCF Web サービス。

例: コントラクトで DateTime を型として公開するときに考慮する必要がある特別なルールはありますか? 辞書とハッシュテーブルはどうですか? 利用可能なさまざまなバインディングで遭遇する可能性のある問題は何ですか?

4

2 に答える 2

7

WCFDateTimeの問題

DateTimeの質問に関しては、WCFを介してDateTimeを渡すことを心配する必要があります。これは、困難について不満を抱いている多くのリンクの1つにすぎません... http://daveonsoftware.blogspot.com/2008/07/wcf-datetime-field-adjusted.html

タイプの同等性について

ジュヴァル・ローウィの著書「Programming WCF Services、2ndEdition」のセクション3.1.3によると...

WCFは、プリミティブ型のスキーマに業界標準があるため、プリミティブ型の暗黙的なデータコントラクトを提供します。

彼はまた、オペレーションコントラクトメソッドのパラメーターとしてのカスタムタイプの使用に関して指摘しています。これはメソッドの戻り型にも当てはまると思います。

カスタム型を操作パラメーターとして使用できるようにするには、2つの要件があります。1つは型がシリアル化可能である必要があり、もう1つは、クライアントとサービスの両方が同じデータになるその型のローカル定義を持っている必要があることです。スキーマ。

セクションF.4も確認してください。彼のWCFコーディング標準の一部であるデータ契約。箇条書き#9はあなたの質問に当てはまります...

タイプなどの.NET固有のタイプを操作パラメーターとして渡さないでください。

バインディングは期待を確立します

WSHttpBindingBase(Reflector.NETで4つの派生を検索)に基づくバインディングは、相互運用性を目的として設計されているため、最も相互運用性が高くなります。

本の推奨事項

Juvalの本を強くお勧めします:http ://www.bookpool.com/sm/0596521308

于 2009-01-27T23:55:42.390 に答える
1

したがって、Microsoft 以外のサービスと相互運用したい場合は、非プリミティブ型を避けたいと思うでしょう。WCF はシリアル化を使用して送信用のデータをエンコードしますが、たとえば Java はハッシュテーブルを逆シリアル化できません。ただし、WCF は SOAP の上に構築されているため、少し作業すれば、JAVA クライアントと WCF サービス間、またはその逆の間で任意の SOAP 機能を動作させることができるはずです。

プリミティブのコントラクトを作成することを忘れないでください。問題はありません。

于 2009-01-27T22:32:30.233 に答える