ポータブル/相互運用WCF契約
-
20-08-2019 - |
質問
私は思っていたし、Microsoft以外WCF Webサービスを呼び出すJavaなどの技術。
たとえば:ご契約中のタイプとしてのDateTimeを露光する際に考慮される必要がある特別なルールがありますか?どのように辞書とハッシュテーブルについてはどうですか?あなたが利用可能なさまざまなバインディングとに実行する可能性のある問題は何ですか?
解決
WCFのDateTime苦境
あなたのDateTimeの質問について、あなたはWCF経由でのDateTimeの周りに渡すことを心配する権利です。これは、困難について多くのことの不満のひとつのリンクです... http://daveonsoftware.blogspot.com/2008/07/wcf -datetimeフィールド-adjusted.htmlする
についてタイプ等価
...プログラミングWCFサービス、第2版と題しジュバル・ロウィの本のセクション3.1.3によると、
WCFは、暗黙的なデータコントラクトを提供しています プリミティブ型があるので、 スキーマのための業界標準 これらのタイプのます。
彼はまた、運用契約法上のパラメータなどのカスタム型の使用に関してのそれを指摘しています。私は、これはまた、メソッドの戻り値の型に適用されると推定ます。
としてカスタム型を使用できるようにするには 動作パラメータ、2があります 要件:まず、タイプでなければなりません 直列化可能な、第二、両方 クライアントとサービスを持っている必要があります そのその種類のローカル定義 同じデータスキーマで結果ます。
また、セクションF.4をチェックアウトすることができます。彼のWCFコーディング標準の一部であるデータコントラクト、。弾丸#9は、あなたの質問に適用されます...
は、このような、.NET固有の型を渡さないでください。 タイプとして、動作パラメータとしてます。
バインディングが確立期待
それらは相互運用性のために設計されているので、WSHttpBindingBase(その4つの派生ためReflector.NETで検索)に基づいているバインディングは、最も相互運用可能であることを行っている。
ブック勧告
私は非常にJuvalの本をお勧めします: http://www.bookpool.com/sm/0596521308
他のヒント
あなたは、おそらくすべての非プリミティブ型の明確な舵取りしたいと思うでしょうMicrosoft以外のサービスとの相互運用したいのであれば。 WCFは、ハッシュテーブルをデシリアライズすることができなくなり、例えば送信およびJavaのためのデータを符号化するためにシリアル化を使用します。 WCFは、しかし、あなたがJAVAクライアントとWCFサービスまたはその逆の間で働くすべてのSOAP機能を得ることができる必要があり、作業のビットを持つように、SOAPの上に構築されます。
ただ、プリミティブの契約を構成することを忘れないでください、あなたは大丈夫行う必要があります。