我有數據庫中的二進制序列化對象。他們用protobuf序列化。 現在我需要生成一些查看器來查看數據庫的內容。 因此,我從數據庫中讀取數據流並將其反序列化爲對象。 它的工作原理,其結果是對象列表:不能反序列化沒有setter的類型
var dbData = readData(someType);//it is IList collection
現在,我想挽救的對象的此列表文件,檢查數據庫的內容。我認爲這將是最好的保存到XML。所以,我曾嘗試:
var serializer = new XmlSerializer(dbData.GetType());
,但我得到一個錯誤:無法反序列化類型「My.Entities.IdBase」,因爲它包含屬性鍵「」不具有公共setter方法。
現在是什麼?我無法將類定義更改爲setter。 我應該將對象保存爲json還是純文本?或者我應該提取所有的屬性和值,並將其保存到一些XML?任何代碼示例?
你可以使用Json.Net http://www.newtonsoft.com/json,它能夠序列化私有成員。 Howto:http://stackoverflow.com/questions/24106986/json-net-force-serialization-of-all-private-fields-and-all-fields-in-sub-classe – TripleEEE
XmlSerializer類型抱怨這些事情甚至如果你只打算用它序列化對象,並且從不反序列化。 –