3

サードパーティ製品への多くのWeb参照があるC#プロジェクトがあります。これらのWebサービス呼び出しはすべて、「ユーザーコンテキスト」クラスを使用します。したがって、各Webサービスはまったく同じXMLスニペットを受け入れます。

現在、さまざまなWebサービス呼び出しをすべてヒットするため、これらの「ユーザーコンテキスト」オブジェクトの多くを保持する必要があります。生成された「ユーザーコンテキスト」クラスはまったく同じですが、異なる.NET名前空間に配置されます(XML名前空間は同じです)。

これらのインスタンスの1つだけを渡すことができるようにしたいと思います。どうすればそれができますか?

Visual Studio 2010を使用しており、WebReferenceを追加して生成されたクラスを使用しています。私は他のフレームワークやメカニズムを使用することに反対していません。自分のコードをローリングすることも考えていましたが、使用する必要のあるWebサービスはたくさんあります(それぞれに多くのWebメソッドがあります)。

更新:最初はWeb参照を追加してこれらを追加しましたが、今後はサービス参照として追加します。Webサービス自体はInterSystemsCachéを通じて公開されており、WS-Iにどの程度準拠しているかについては調べていません。

4

2 に答える 2

2

VS 2010についてはよくわかりませんが、2008年には、サービス参照追加ウィザードに「参照されたアセンブリでタイプを再利用する」オプションがあり、必要なことだけを実行します。すべてのWeb参照で同じ型を使用してアセンブリを作成するには、それらの型定義をそこに配置し、プロジェクトから参照してから、必要なWeb参照を追加します。

于 2010-07-01T17:17:17.923 に答える
0

このような問題は、1つのクラスのみを使用し、XMLのシリアル化/逆シリアル化でオブジェクトを変換することで解決しました。しかし、それでもそれは完璧な解決策ではありません。

于 2010-07-02T13:48:55.987 に答える