2011-03-21 54 views
4

是否有任何方式可能缺少手工編寫Reference.cs文件,讓Visual Studio允許多個服務引用共享一個名稱空間?有沒有Visual Studio共享一個命名空間與多個服務引用

我正在開發一個客戶端應用程序,它使用了屬於同一解決方案的多個服務。 MS-Project Server的項目服務接口(PSI)API是微軟的一部分。而不是對每個單獨的服務參考不同的命名空間,如:

MyProject.ProjectService.ProjectServiceClient 
MyProject.ResourceService.ResourceServiceClient 
MyProject.TimesheetService.TimesheetServiceClient 

這將是很好,如果我們可以將它們全部扔進單一命名空間,如:

MyProject.Services.ProjectServiceClient 
MyProject.Services.ResourceServiceClient 
MyProject.Services.TimesheetServiceClient 

隨着這一來共享通用代碼的能力。例如,如果這些服務中的任何一個暴露相同的數據合同。現在,如果我想編寫客戶端可以使用的代碼,我必須爲每個服務代理創建一個單獨的版本,因爲常見協定存在於三個不同的名稱空間中。看看我要去哪裏?

有可能嗎?

UPDATE

讓我們假設我沒有訪問到服務代碼(因爲我沒有),這意味着一個共享的類庫是不是一種選擇。在這種情況下我的選擇是什麼?

+0

哪個版本的Visual Studio?你是使用服務引用還是Web引用? – CodingGorilla 2011-03-21 19:15:15

+0

我正在使用Visual Studio 2010並添加一個Service Reference。 (使用PSI只是爲了這個例子。) – SonOfPirate 2011-03-21 19:40:35

回答

1

您可以將這些公共類放入由服務和客戶共享的類庫中。然後,Visual Studio將不會爲每個服務引用生成類,而是將使用通用類庫。

+1

是的,我意識到這一點。我只是希望有一種方法可以讓它變得更清潔 - 或者更好地說:自動。 – SonOfPirate 2011-03-21 19:42:25

+0

如果您控制服務的服務器端和客戶端,這是一項非常棒的技術,並且有很多好處。我認爲我最喜歡的這種技術的特點是你不再需要維護這些糟糕的服務引用dirs和Reference.cs文件,egads,這些都很簡單。 – 2011-03-21 19:42:32

+0

@Chris:你仍然有Reference.cs文件,它們只是少了一些。 – 2011-03-21 19:44:49

相關問題