2 回答

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

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
序列化是將對(duì)象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^(guò)程。與序列化相對(duì)的是反序列化,它將流轉(zhuǎn)換為對(duì)象。這兩個(gè)過(guò)程結(jié)合起來(lái),可以輕松地存儲(chǔ)和傳輸數(shù)據(jù)。
.NET Framework 提供兩種序列化技術(shù):
二進(jìn)制序列化保持類(lèi)型保真度,這對(duì)于在應(yīng)用程序的不同調(diào)用之間保留對(duì)象的狀態(tài)很有用。例如,通過(guò)將對(duì)象序列化到剪貼板,可在不同的應(yīng)用程序之間共享對(duì)象。您可以將對(duì)象序列化到流、磁盤(pán)、內(nèi)存和網(wǎng)絡(luò)等等。遠(yuǎn)程處理使用序列化“通過(guò)值”在計(jì)算機(jī)或應(yīng)用程序域之間傳遞對(duì)象。
XML 序列化僅序列化公共屬性和字段,且不保持類(lèi)型保真度。當(dāng)您要提供或使用數(shù)據(jù)而不限制使用該數(shù)據(jù)的應(yīng)用程序時(shí),這一點(diǎn)是很有用的。由于 XML 是一個(gè)開(kāi)放式標(biāo)準(zhǔn),因此,對(duì)于通過(guò) Web 共享數(shù)據(jù)而言,這是一個(gè)很好的選擇。SOAP 同樣是一個(gè)開(kāi)放式標(biāo)準(zhǔn),這使它也成為一個(gè)頗具吸引力的選擇。
通俗的說(shuō)法就是序列化就是把類(lèi)改成2進(jìn)制溜文件方便存儲(chǔ)和傳輸數(shù)據(jù)
- 2 回答
- 0 關(guān)注
- 863 瀏覽
添加回答
舉報(bào)