2011-02-24 26 views
0

我有一個從提供的WSDL生成的基本SOAP服務。 WSDL將連接端點指定爲Web服務中的應用程序級Settings.settings文件中的條目,並因此在項目的app.config中的AppSettingsGroup中進行復制。更改Web服務端點的存儲位置

的問題是雙重的:

  1. 這個項目(這是不是解決方案的主要項目)有一個app.config自己的所有,這個唯一理由;否則只會有主要的exe配置。

  2. 在爲生產環境構建時端點必須更改。目前我必須進入並更改此設置與我的主要配置更改(我已使用可輕鬆切換的configSource位置設置)分開進行。

將端點設置從設置文件中的條目移動到主配置佈局中的appSetting是理想的。然後,在爲生產而建設時,我所要做的就是在整個項目的一個位置「翻轉一點」,現在應用程序指向生產環境。但是,Web服務中的引用是生成的代碼。有沒有辦法爲這個設置指定一個自定義位置,如果/當我刷新服務時不會被吹走?

回答

1

當實例在你的代碼自動生成的代理類,你可以設置URL屬性:

string url = ConfigurationManager.AppSettings["fooUrl"]; 
using (var client = new AutoGeneratedServiceClient { Url = url }) 
{ 
    client.SomeMethod(); 
} 

,然後你可以在URL保存在您的主配置文件。

+0

沒有想到這一點;它的工作原理,但我仍然有這個無用的app.config,我必須有,因爲默認的構造函數將設置該屬性之前,默認的構造函數將會barf,如果該設置不存在默認的構造函數。 – KeithS 2011-02-24 19:51:23