天天看點

WCF揭秘——共享資料契約

當用戶端引用WCF服務時,必須為服務定義一個唯一的命名空間。在預設情況下,這個服務中所用到的類會被導入到這個命名空間内。這樣,在不同的服務内引用同一個資料契約時就會遇到一個問題:在用戶端,同一個資料契約被導入到不同的命名空間中,無法實作轉換。

在以下例子中,PersonService與ContractService同時包括對Person資料契約的引用,但通過 PersonService擷取到的Person對象,無法作為ContractService中的參數,因為在用戶端,它們被引用到不同的命名空間之 中,被視為不同的兩個類。

從Visual Studio 2008開始,系統為客戶提供了“共享資料契約”這一功能。首先把需要共享的資料契約包含在一個程式集中,生成一個Model.dll檔案。在用戶端引用 這一程式集,在添加服務引用時,選擇"進階"—>"重新使用引用的程式集中的類型(R)"—>"重新使用所引用的指定程式集中的類型 (S)",然後選擇Model。這樣,在用戶端就會同時使用Model.dll中的Person對象。

<a href="http://blog.51cto.com/attachment/201108/133634480.jpg" target="_blank"></a>

本文轉自 leslies2  51CTO部落格,原文連結:http://blog.51cto.com/79100812/629306

繼續閱讀