通過Binary和Datacontract序列化程序,我們也可以序列化私有成員。 它違反了oops原則嗎?我的意思是通過序列化,我們可以將對象保存在文件,磁盤中,然後可以在反序列化後由任何人重用。我不知道,我在想正確。請糾正我。序列化C#中的私人成員推薦與否?
回答
序列化的目的是將某些東西放在可以用完全相同的狀態重新創建的格式中。爲了能夠重新創建一個完全相同狀態的對象,您還需要能夠重新創建過度反序列化過程中的「內部狀態」(又名私有成員持有的值)。
所以不推薦使用C#序列化私有成員,需要!
*把某些東西放在可以用完全相同的狀態重新創建的格式*當然是序列化的*目標*,但它本身並不是真正意義上的*。 – 2015-02-08 18:05:05
@AntP不夠公平,但我不確定是否有更好的方法將它告訴給已經在序列化概念上掙扎的人。 – 2015-02-08 18:08:33
「要序列化意味着......」如果這是個大問題。 – ChiefTwoPencils 2015-02-08 18:12:26
- 1. php反序列化與私人成員
- 2. 推薦在javascript模塊中確定私人成員的方法
- 3. 反序列化C中的私有成員的對象圖#
- 4. Python中的私人成員
- 5. Java中的私人成員
- 6. CoffeeScript中的私人成員?
- 7. 構造函數中私人成員初始化的差異(C++)
- 8. 避免XML序列化時序列化私有數據成員
- 9. $。推薦爲成員變量
- 10. 公共屬性和私人成員C#
- 11. C++抽象基類私人成員
- 12. ASDocs忽略私人成員
- 13. 初始化私有成員C#
- 14. 子類化與私有成員
- 15. R中的私人成員引用類
- 16. 班級中的私人成員
- 17. 私人成員如何在C#中的派生類中訪問?
- 18. 如何序列化包含私有成員的類的實例?
- 19. 助推互斥奇怪的錯誤與私人會員
- 20. 企業Web應用程序推薦的支持技術人員與開發人員比例是多少?
- 21. PHP POST推薦人
- 22. C++:允許訪問受保護的類的成員,而不是私人成員
- 23. 原型上的私人成員
- 24. MFC EditControl的值不是私人成員
- 25. Protobuf-net typemodel爲什麼不序列化私有隻讀成員?
- 26. Json.NET序列化私有成員而不是隻讀屬性
- 27. 訪問私有成員C++
- 28. C++私有函數成員
- 29. 填寫表格與推薦人cookie JS
- 30. 如何在.Net序列化中成爲專業人員
可見性與隱私不完全相同。任何對象都可以有任意數量的私有字段,這是爲了保護對象的狀態。這並不意味着它是敏感信息。 – ChiefTwoPencils 2015-02-08 17:56:23
既然你問了一個哲學問題,我會用稍微不同的觀點來補充我的觀點。 我不會將對象序列化爲具有圍繞它們的業務邏輯的私有成員。因爲如果序列化或反序列化可以改變內部並繞過我的業務邏輯,那麼我不保證有一個對象處於有效狀態。因此,我將序列化視爲我的應用程序的邊界,我只通過我的邊界傳遞POCO對象。 – Sam 2015-02-08 18:06:04