C 序列化 唯讀屬性

2021-07-04 07:20:42 字數 631 閱讀 6304

在直接序列化唯讀屬性的時候,由於該屬性沒有 setter ,在反序列化時無法給其賦值,所以該屬性將不被序列化(個人理解);

而且,如果序列化的目的如果只是儲存,反序列化之後唯讀屬性的值可以通過 get 裡面的**自動獲得,序列化也沒有意義;

但如果目的是傳輸給其它程式,可能就不一定了(我目前接觸到的乙個專案就有這個需求,要將一些屬性值儲存,但這些屬性只在**中適合用唯讀的方式獲取),

總之,我們要序列化唯讀屬性

廢話了那麼多,不能序列化的原因就是沒有setter,那,加乙個空的setter就可以了……

就這麼簡單(之前還想了好久  (。﹏。*) )

實現如下:

[xmlelement("minage")]

public int minage

[xmlelement("maxage")]

public int maxage

[xmlelement("diffage")]

public int diffage

set

}

以上**中,diffage 在語法上講,不能完全稱作唯讀,但可以遮蔽使用者的設定;

這樣,diffage 就可以被序列化以及反序列化了。

C 序列化 反序列化

序列化又稱序列化,是.net執行時環境用來支援使用者定義型別的流化的機制。其目的是以某種儲存形成使自定義物件持久化,或者將這種物件從乙個地方傳輸到另乙個地方。net框架提供了兩種序列化的方式 1 是使用binaryformatter進行序列化 2 使用soapformatter進行序列化 3 使用x...

序列化和反序列化 C 序列化與反序列化。

序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...

C 序列化與反序列化

一 概述 當兩個程序在進行遠端通訊時,彼此可以傳送各種型別的資料。無論是何種型別的資料,都會以二進位制序列的形式在網路上傳送。傳送方需要把這個物件轉換為位元組序列,才能在網路上傳送 接收方則需要把位元組序列再恢復為物件。把物件轉換為位元組序列的過程稱為物件的序列化。把位元組序列恢復為物件的過程稱為物...