2013-01-09 44 views
1

在我的代碼我目前有:的Visual Studio 2012 - 有條件使用(服務參考)

#if (DEBUG) 
using GetNewRecordNumber = {dev web service reference}.GetNewRecordNumber; 
#else 
using GetNewRecordNumber = {prod web service reference}.GetNewRecordNumber; 
#endif 

所以,我可以做的:

using (GetNewRecordNumber.Tickets_GetNewRecordNumber getNum = new GetNewRecordNumber.Tickets_GetNewRecordNumber()) 
在我的代碼

。這一切都正常,但我想在應用程序設置中進行切換,以便在運行時更改它。有沒有辦法把它關掉,這樣交換機就可以在運行時發生,否則就會複製代碼?

謝謝!

回答

0

不知道你是否會考慮這個重複的代碼,但也許最直接的方法是爲你的服務做一個包裝類,並在上述地方使用這個包裝類。您已經使用這些#if塊複製了大量代碼,因此使用包裝器可能會減少您的總代碼並使其更清潔。

另一種選擇是手動修改服務引用,以便它們從定義所需所有成員的通用接口繼承,但如果需要經常更新引用,這可能不是一個好主意。

1

預處理器指令在編譯前工作,所以它不會在符文時間工作。抱歉,您必須取消「#」指令並改用ConfigurationManager.AppSettings。

+0

當然,但我如何使用上面提到的引用的using語句來做到這一點?謝謝! – VydorScope