【发布时间】:2015-02-08 17:51:39
【问题描述】:
通过 Binary 和 Datacontract 序列化器,我们也可以序列化私有成员。 是否违反 oops 原则?我的意思是通过序列化我们可以将对象保存在文件、磁盘中,然后在反序列化后任何人都可以重用它。我不知道,我的想法是正确的。请纠正我。
【问题讨论】:
-
可见性与隐私并不完全相同。任何对象都可以有任意数量的私有字段,这是为了保护对象的状态。这并不意味着它是敏感信息。
-
既然你问了一个哲学问题,我就用一个稍微不同的观点来补充一下我的观点。我不使用具有业务逻辑的私有成员序列化对象。因为如果序列化或反序列化可以改变内部结构并绕过我的业务逻辑,那么我不能保证对象处于有效状态。因此,我将序列化视为我的应用程序的边界,并且我只通过我的边界传递 POCO 对象。
标签: c# serialization access-modifiers