2

できると確信していますが、タイトルの質問に答えることに加えて、そうすることの長所、短所、注意事項なども説明していただけますか? WebMethod から List、Set、Collection、Map、または任意のインターフェイスを返すことができないことはわかっています (これはばかげていますが、IMO ですが、おそらく判断を保留する必要がある設計上の理由が何であったかはわかりません)。

アドバイスをありがとう。

-- レ

4

2 に答える 2

3

配列を返すことができますが、私はそれらが役立つことを発見しました。

コレクションが問題である主な理由は、C などの一部の言語がコレクションの概念を理解していないためです。そのため、移植性を維持するには、ほとんどの言語で表現できる構造を確実に渡す必要があります。

その上、私はコレクションを渡すのが好きではありません.Webサービスから来るものはかなり静的でなければならないからです。追加する場合は、配列をコレクションに変換してから、配列を Web サービスに戻して変更を加えます。

于 2009-09-30T16:43:21.713 に答える
1

ジェームズは正しいです。配列を返すことができます。コレクション型を返すこともできます。wsdl は型をリストとして定義します。ただし、ほとんどのクライアントは型を配列に変換します (少なくとも、C# が JAX-WS サービスで行ったことがわかりました)。

サードパーティ (Apache Axis2) を使用して Web サービスを生成しましたが、wsdl が正しく読み取られず、コンシューマーが配列を正しくデシリアライズできないという奇妙な問題に遭遇しました。配列オブジェクトのみを含み、webmethod から返されるようにするデコレータ オブジェクトを作成する必要がありました。

これは Axis2 が .NET Web サービス インターペリターとうまく連携していなかっただけだと思いますが、注意が必要です。

于 2009-09-30T16:52:28.537 に答える