WSDL.exeを使用してWebサービスプロキシを生成する際の異なるURLへのデフォルト設定

StackOverflow https://stackoverflow.com/questions/143019

  •  02-07-2019
  •  | 
  •  

質問

プロジェクトには、タイプを共有する多数のWebサービスがあります。

簡単にするために、2つのWebサービスでデモを行います。

http://MyServer/WebService.asmx のWebService1 http://MyServer/WebService.asmx

のwebService2

使用するこれら2つのサービスのプロキシを生成するとき:

wsdl / sharetypes http://MyServer/WebService1.asmx http://MyServer/WebService2.asmx / appsettingurlkey:WebServiceUrl / namespace:MyNamespace /out:MyProxy.cs

問題は、appsettingurlkeyが各Webサービスで同じであることです プロキシファイル内。複数指定できるようにしたい appsettingurlkeyパラメーター。これはどのように達成されますか?思った / sharetypesパラメータが利用可能になったため、 それぞれに個別にappsettingurlkeyを指定するためのソリューション 識別されたWebサービス。

wsdl.exeでこれが不可能な場合、私は何を提案しますか? wsdl.exeが出力する生成されたコードを更新したくないので、UrlをWebサービスの各インスタンスに渡してアプリケーション全体を処理したくありません。

役に立ちましたか?

解決

生成されたプロキシクラスは部分的なクラスなので、私の解決策は、プロキシごとに異なる設定を明示的に読み取る別の(生成されていない)コードファイルに独自のコンストラクタを追加することです。

他のヒント

エリヤの答えを補足するために、私が彼に与えたメールの答えを以下に示します。

XMLがこのテキストボックスにうまく貼り付けられなかったため、ブログを作成する必要がありました。 http://www.rickdoes.net/blog/archive/2008/09/29/wsdl-shared-types-and-configuration.aspx

ああ、オーバーロードされたコンストラクターでUrlを渡す別の部分クラスを作成する代わりに、wsdl.exeへの次の追加パラメーターで問題が解決します...

wsdl / sharetypes http://MyServer/WebService1.asmx http://MyServer/WebService2.asmx / appsettingurlkey:WebServiceUrl / namespace:MyNamespace /out:MyProxy.cs / appsettingurlkey:BaseSoapUrl / appsettingbaseurl: http:// MyServer /

web.configにBaseSoapUrl appSettingがある場合、それを使用して http:// MyServer / を置き換えますMyProxy.csのサブ文字列。 appSettingが存在しない場合、wsdl.exeで提供されるパスを使用します(例:appSettingまたは http://MyServer/WebService1.asmx (appSettingを使用しない場合)。

正しい方向を示してくれたリック・キーナーに感謝します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top