古い Microsoft Web サービス テクノロジ (WSE など) と、 Java 呼び出し WCF Web サービス。
例: コントラクトで DateTime を型として公開するときに考慮する必要がある特別なルールはありますか? 辞書とハッシュテーブルはどうですか? 利用可能なさまざまなバインディングで遭遇する可能性のある問題は何ですか?
古い Microsoft Web サービス テクノロジ (WSE など) と、 Java 呼び出し WCF Web サービス。
例: コントラクトで DateTime を型として公開するときに考慮する必要がある特別なルールはありますか? 辞書とハッシュテーブルはどうですか? 利用可能なさまざまなバインディングで遭遇する可能性のある問題は何ですか?
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
したがって、Microsoft 以外のサービスと相互運用したい場合は、非プリミティブ型を避けたいと思うでしょう。WCF はシリアル化を使用して送信用のデータをエンコードしますが、たとえば Java はハッシュテーブルを逆シリアル化できません。ただし、WCF は SOAP の上に構築されているため、少し作業すれば、JAVA クライアントと WCF サービス間、またはその逆の間で任意の SOAP 機能を動作させることができるはずです。
プリミティブのコントラクトを作成することを忘れないでください。問題はありません。