2013-04-22 25 views
0

我有一個具有多個端點的WCF服務。每個端點都有自己的配置。 我的問題是,我試圖找出什麼是最好的。將多個WCF服務封裝到類庫中

1 - 添加到我的MVC應用程序的服務引用到每個端點

2 - 創建新的DLL,將有引用到每個端點,然後在我的MVC應用程序只添加到這個參考DLL。

我真的可以用你的幫助來判斷每種方法是否有缺點?


  • UPDATE 我忘了提,我有多個MVC應用程序,每個人只使用一個或兩個的WCF服務。 更準確,我現在有6個MVC應用程序和7個WCF服務。每個MVC應用程序僅使用2個WCF。將來的MVC應用和WCF的數量將會增長。

回答

0

我不會使用服務器引用,但只需將svcutil同時指向全部三個。它將生成一組代理和一個配置。它還允許您共享服務之間的數據合同。

0

就我個人而言,我總是將我的Web引用和服務引用放在一個名爲SharedServices的獨立程序集中。那樣;多個程序集可以共享相同的引用,並且可以在程序集中共享數據類型。將Web引用附加到程序集可能會導致許多項目僅依賴於該程序集的Web服務定義。

0

您可以編寫一個負責訪問服務的服務代理,爲您的MVC應用程序抽象掉這個邏輯。如果您需要,服務代理也可以實現像緩存這樣的其他邏輯。有關演示代碼,請參見http://tinyurl.com/cbcepgl,下面的「服務代理」。

+0

我更新了我的問題,並提供了更多詳細信息。 我認爲你的解決方案對於不是WCF的服務是正確的,因爲WCF服務已經只公開方法簽名,所以我不需要再給出方法的另一個摘要 – GustavLatte 2013-04-22 13:07:03

+0

那麼,每個WCF服務可以有一個服務代理,或所有WCF服務的一個服務代理;這是你必須做出的選擇。 – 2013-04-22 13:09:39