2009-12-02 75 views
1

在我的WCF解決方案中,服務器不需要知道數據類型。客戶端將發送一個類型並接收相同的類型。有沒有辦法在WCF中進行自定義序列化?

出於性能的考慮,我認爲我可以在客戶端代理手動實現序列化,避免了在服務器端WCF內建的序列化,但有什麼辦法實現只配置WCF正確相同的目標?

回答

0

只是讓你來回傳遞給服務器的類型具有像byte []屬性的東西。然後你可以在客戶端序列化你已知的類型。服務器將只需要知道不透明字節

1

WCF的整個基本體系結構基於客戶端調用服務器,發送一個序列化的消息。

這是WCF的基礎 - 消息傳遞。你不能關掉它。你可以調整它 - 但你不能刪除它。

至於自定義序列 - 退房亞倫Skonnard在MSDN雜誌優秀Serialization in WCF文章。

你可以去儘可能創建自己的自定義序列化的WCF - 如果你真的想 - 但爲什麼?

爲什麼你作爲一個開發者或小店裏要在微軟的「競爭」一個相當可觀的團隊,並再次重新發明系列化的車輪?我更願意專注於微軟無法爲我解決的真正商業問題,但讓「基礎設施膠水」成爲他們的遊戲 - 他們擅長,而且他們擁有更多的人力和資源!

+0

但你可以* *指定一個相對無關的方式傳遞的數據類型,傳遞一個對象實例,byte []數組或類似。 – 2009-12-02 20:15:22

+0

是的 - 但即使如此,這個**會在某個時間序列化成一條消息。您無法通過某種形式的序列化將對象從客戶端傳遞到服務器。 – 2009-12-02 20:18:21

+0

我不認爲我可以在可用時間內創建任何接近內置序列化的東西。但我想知道內置的序列化應該如我所要求的那樣進行配置。 – 2009-12-02 20:33:23

1

我認爲protobuf-net自定義序列化。如果我看看它的源代碼,我可以瞭解如何實現自己的目標

相關問題