2 回答

TA貢獻1876條經驗 獲得超5個贊
序列化是用來通信的,服務端把數據序列化,發送到客戶端,客戶端把接收到的數據反序列化后對數據進行操作,完成后再序列化發送到服務端,服務端再反序列化數據后對數據進行操作。說白了,數據需要序列化以后才能在服務端和客戶端之間傳輸。這個服務端和客戶端的概念是廣義的,可以在網絡上,也可以在同一臺機器的不同進程中,甚至在同一個進程中進行通信。在傳統編程中,對象是通過調用棧間接的與客戶端交互,但在面向服務的編程中,客戶端永遠都不會直接調用實例。不知道說的明不明白。
好吧,我說的確實不夠明白,你問的是為什么需要序列化,我只是說了序列化的一個應用。那我就來說說序列化的好處吧。不序列化也可以傳輸,但是無法跨平臺,安全性也無法保障。我說的是面向服務編程中的作用,在傳統編程中,你在表示層實例化一個業務對象,然后調用業務對象中的方法,你想過為什么能這樣調用嗎?這樣做耦合度太高,很不好。如果序列化以后通過特定的協議傳輸數據就不一樣了,表示層通過代理或通道向服務層發送特定的數據格式,這個數據就是序列化以后的,比如XML,服務端接收到以后要進行反序列化,生成服務端可識別的數據格式,比如一個類,然后對數據進行操作,再序列化發送到客戶端,客戶端再反序列化。這樣客戶端可以使用和服務端完全不同的開發平臺,只要它能夠對xml數據進行反序列化,而xml是具有工業標準的數據格式,基本各平臺都支持。這也適用于在進程間通信。如果在進程內通信,也可以做到更高的安全性,對象不再通過調用棧交互,而是通過代理或通道。

TA貢獻1795條經驗 獲得超7個贊
序列化是將對象狀態轉換為可保持或傳輸的格式的過程。與序列化相對的是反序列化,它將流轉換為對象。這兩個過程結合起來,可以輕松地存儲和傳輸數據。
.NET Framework 提供兩種序列化技術:
二進制序列化保持類型保真度,這對于在應用程序的不同調用之間保留對象的狀態很有用。例如,通過將對象序列化到剪貼板,可在不同的應用程序之間共享對象。您可以將對象序列化到流、磁盤、內存和網絡等等。遠程處理使用序列化“通過值”在計算機或應用程序域之間傳遞對象。
XML 序列化僅序列化公共屬性和字段,且不保持類型保真度。當您要提供或使用數據而不限制使用該數據的應用程序時,這一點是很有用的。由于 XML 是一個開放式標準,因此,對于通過 Web 共享數據而言,這是一個很好的選擇。SOAP 同樣是一個開放式標準,這使它也成為一個頗具吸引力的選擇。
通俗的說法就是序列化就是把類改成2進制溜文件方便存儲和傳輸數據
- 2 回答
- 0 關注
- 866 瀏覽
添加回答
舉報