c#如果控制序列化时根据需要决定是否序列化某个属性字段?
答案:1 悬赏:40 手机版
解决时间 2021-08-10 11:04
- 提问者网友:温旧梦泪无声
- 2021-08-10 06:44
c#如果控制序列化时根据需要决定是否序列化某个属性字段?
最佳答案
- 五星知识达人网友:举杯邀酒敬孤独
- 2021-08-10 07:50
当ObjectOutputStream对一个implements Serializable 的类对象进行序列化时,如果该对象具有writeObject()方法,那么就会执行这一方法,否则就按默认方式序列化。在该对象的writeObjectt()方法中,可以先调用ObjectOutputStream的defaultWriteObject()方法,使得对象输出流先执行默认的序列化操作。同理可得出反序列化的情况,不过这次是defaultReadObject()方法。 有些对象中包含一些敏感信息,这些信息不宜对外公开。如果按照默认方式对它们序列化,那么它们的序列化数据在网络上传输时,可能会被不法份子窃取。对于这类信息,可以对它们进行加密后再序列化,在反序列化时则需要解密,再恢复为原来的信息。 上述是帮你找的一些解说资料^_^, 如果你是需要体验下自己控制序列化得话,您程式中出现的问题,简单的解决方法是,在Employee 类的 writeObject方法的开头中添加一个 out.defaultWriteObject();这么一句话 以及 readObject方法的开头位置添加一个in.defaultReadObject();。如果你只需要读写对象类能够成功,你列出的程序能够正常运行的话,其实可以直接用默认的序列化,不用自己写writeObject,readObject, 直接将Employee类中的这两个方法删除就行了。 ^_^
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯