0

コードが自動生成され、コードを変更したくない場合 (たとえば、基本クラスを追加するため)、Web サービスをファクトリ パターンで使用できますか?

これを行う理由は、同一の 2 つの Web サービスがあり、1 つはテスト データ用で、もう 1 つはライブ データ用であり、コードが実行されている環境に基づいてサービスを切り替えたい場合です。

【追記】
C#3を使っています。

4

1 に答える 1

1

C# と SOAP を使用している場合は、実行時に宛先を変更できます。

var webSvc = new WebServerObjectName();
webSvc.Url = "http://examples/com/foo.asmx"; 

//or pull from .config, etc.  
webSvc.Url = ConfigurationManager.AppSettings["WebServiceUri"].ToString();

//make the call to the web method
var custs = webSvc.GetCustomerList();

フローは次のようになります。

  • 設計時に、Web 参照を作成します。コントラクトを確立し、それをコーディングします (入力および出力パラメーター)。契約が同じままである限り、一度だけ作成する必要があります。
  • 実行時に、Web サービスの URL/URI/ターゲットを変更します。明らかに、同じコントラクト/パラメーター/メソッド署名が必要です。そうしないと、実行時に呼び出しが失敗します。
  • 電話をかける
于 2010-09-11T14:58:12.187 に答える