2012-02-21 8 views
3

公開されたASMX WebサービスからのWSDLファイルがあります。 の後には、テスト目的で実際のサービスを模倣したモックサービスが作成されています。WSDLからWCFでサービスをホストする - SVCUtilはメソッドの詳細タイプを生成します

WSDLからは、SvcUtil.exeを使用してコードを生成しました。どうやらそれはまた、サーバー側のインターフェイスを 生成します。

問題は、非常にチャンクの多いインターフェイスを生成することです。たとえば、 int Add(int, int)というメソッドが、生成された.csファイルにAddResponse Add(AddRequest)として表示されています。 AddRequestおよびAddResponseは、AddRequestBodyおよびAddRequestResponseなどを有する。

実装するには、単純なint結果を返したい場合でも、各メソッドのボディとレスポンスのインスタンスを作成する必要があります。

なぜメソッド署名を正しく生成できないのですか? WSDLからWCFサーバーのサイドインターフェイス/コントラクトを生成するためのより良い方法はありますか?

答えて

4

あなたは二つのものによって引き起こされる記述されているメッセージ構造:Webサービス・スタックとそのプログラミングモデル(メッセージング対RPC)間

  • 相互運用性の向上。
  • 既存のWebサービスに新しいパラメータを適応させる柔軟性。

the firstあなたはそれについて文句を言う人ではありません。the lastです。これは、一般にドキュメント/リテラル​​ラップパターンと呼ばれるWSDLバインディングスタイルです。ドキュメント/リテラル​​Webサービスを生成しますが、RPCプログラミングスタイルもサポートしています。 ...

WS-I基本プロファイルでは、soap:bodyには1つの子要素しか指定できないことが指定されています。この場合、呼び出される操作名のラッパーです。呼び出しのパラメータは、more flexible to later changesであるため、ベストプラクティスとして1つの要素にのみパックされています。 WCFの場合は通常、すべてのパラメータをラップするa MessageContract which has one MessageBodyMemberで終わります。

基本的に、長い時間前に戦ったWebサービスの戦闘の結果が見られています。ここで

は(そしてそれは氷山の一角です)、件名にいくつかの余分な読書です:

+0

世界では、私がリダイレクトされたのはなぜ「最初の」リンクが付いた鉄製のテーブル販売用ウェブサイトへ? –

+0

@AdrienBrunelat:一部のドメインはもはや有効ではないと思います。リンクは4年前からのものです – Bogdan

関連する問題