1

特定のカスタムオブジェクトを渡す別のWebサービス(基礎となるWS)にパススルーする.net Webサービス(パススルーWS)があります。両方のWSには、特定のカスタムオブジェクトクラスを含むアセンブリが含まれていますが、基になるWSへのサービス参照をパススルーWSに追加すると、.netはパススルーWS名前空間にこのクラスの独自のタイプを生成します。これは、実際の名前空間ではなく、別の名前空間でこの他のオブジェクトを使用する必要があることを意味します。実際には、「実際の」クラス/オブジェクトを複製します。多分私はこれをうまく説明していません。

.netで生成されたサービスクラスに手動でアクセスし、生成されたオブジェクトを「正しい」オブジェクトに置き換えることはできますが、基盤となるサービスが更新されるたびにそれを行う必要があります。控えめに言っても少し苦痛。これは明らかに、戻り値の型と、webmethodsが呼び出される引数にも影響します。

これを回避する方法はありますか?理想的には、両方のWSで同じオブジェクトを使用したいと思います。または、生成されたオブジェクトにコンストラクターを追加して、基になるオブジェクトを取得し、そのようなすべてのプロパティを割り当てる必要がありますか?-私は望んでいません...

WSはプラットフォームに依存せず、.netなどからアクセスできるタイプを使用する必要があることを理解しています。したがって、これらの基本タイプだけを使用し、すべてをカスタムオブジェクトにまとめるのではなく、これらのタイプを使用していることを確認してください。 、これらすべての「プロパティ」を個別の引数として渡すには?どんな助けでも大歓迎

ありがとう

nat

4

1 に答える 1

2

レガシー(別名オールドスクール)ASP.NET Webサービスを使用している場合、基本的に2つのオプションがあります。

  1. それらをWCFサービスに変換し、 (単純な参照の代わりに)サービス参照を使用します。WCFサービスは、クラスの再利用をサポートしています

  2. 従来のWebサービス技術を使い続けたい場合は、プロキシクラスの生成方法をカスタマイズすることで苦労する必要があります。

于 2011-03-04T13:36:50.807 に答える