2010-03-19 95 views
2

我希望能夠通過網絡查詢我的數據庫,並且我想使用WCF服務來處理請求和結果。問題在於,由於這些查詢可能會返回大量的數據,我擔心這些結果將如何通過網絡進行序列化。例如,我可以想像XML序列看起來像:WCF - (自定義)二進制序列化

<Results> 
    <Person Name="Adam" DateOfBirth="01/02/1985" /> 
    <Person Name="Bob" DateOfBirth="04/07/1986" /> 
</Results> 

和包含類型的名稱和其他(不必要的)元數據的二進制序列。甚至可能是集合中每個元素的類型名稱? o_o

理想情況下,我想自己對某些'DataContract'-s進行序列化,這樣我就可以使它變得非常緊湊。有誰知道這是可能的,還是任何解釋如何使用WCF自定義序列化的文章?

在此先感謝

+0

當您輸入問題時,需要突出顯示代碼行,SQL或XML,並在編輯器工具欄上使用「代碼」按鈕(101 010)將代碼格式化爲代碼,語法高亮 – 2010-03-19 18:09:43

回答

4

WCF支持二進制序列化格式開箱 - 它是默認使用的netTcpBinding。我建議首先嚐試將其用於測試 - 只有當這種方法無法正常工作並且壓縮程度不夠時,並且您可以自信地超越並超越整個WCF團隊的範圍,然後將您自己的自定義二進制序列化格式。

檢查出一些優秀的資源:

隨着WCF綁定的組合性,你可以很容易地也建立一個如二進制HTTP綁定。

這裏的主要問題是:如果你做這樣的事情,溝通渠道的兩端必須就如何完成事情達成一致,例如,你不能指望一個簡單的瀏覽器能夠連接和了解你的自定義二進制編碼了 - 你需要能夠控制客戶端和服務器端的電線。

+2

關於短語「智取和超越整個WCF團隊「:這是無關緊要的。自定義的二進制序列化和編碼總是可以勝過通用的序列化,只需利用關於序列化對象的知識即可。沒有必要「智取」任何人。 – 2013-01-25 20:48:50