通過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. 序列化到本地和SOAP與私人成員c#
- 3. 推薦在javascript模塊中確定私人成員的方法
- 4. 反序列化C中的私有成員的對象圖#
- 5. Python中的私人成員
- 6. CoffeeScript中的私人成員?
- 7. Java中的私人成員
- 8. 構造函數中私人成員初始化的差異(C++)
- 9. 避免XML序列化時序列化私有數據成員
- 10. $。推薦爲成員變量
- 11. C++類的私人成員函數
- 12. 是否推薦序列化和反序列化存儲在arrayList中的對象?
- 13. 初始化朋友的引用成員到類私人成員
- 14. protobuf-net沒有序列化與私人setter的C#屬性
- 15. 公共屬性和私人成員C#
- 16. C++抽象基類私人成員
- 17. PHP json_encode類私人成員
- 18. ASDocs忽略私人成員
- 19. 初始化私有成員C#
- 20. 子類化與私有成員
- 21. 班級中的私人成員
- 22. R中的私人成員引用類
- 23. 私人課程中的公共成員
- 24. 集成Hive與Mahout推薦
- 25. 私人成員如何在C#中的派生類中訪問?
- 26. 序列化私有成員protobuf網爲Windows Store應用程序
- 27. 如何序列化包含私有成員的類的實例?
- 28. C++類的私有成員
- 29. 對象序列化與成員
- 30. 序列化類的成員
可見性與隱私不完全相同。任何對象都可以有任意數量的私有字段,這是爲了保護對象的狀態。這並不意味着它是敏感信息。 – ChiefTwoPencils 2015-02-08 17:56:23
既然你問了一個哲學問題,我會用稍微不同的觀點來補充我的觀點。 我不會將對象序列化爲具有圍繞它們的業務邏輯的私有成員。因爲如果序列化或反序列化可以改變內部並繞過我的業務邏輯,那麼我不保證有一個對象處於有效狀態。因此,我將序列化視爲我的應用程序的邊界,我只通過我的邊界傳遞POCO對象。 – Sam 2015-02-08 18:06:04