gpt4 book ai didi

c# - 为什么要序列化的对象需要Serializable Attribute

转载 作者:IT王子 更新时间:2023-10-29 03:59:56 24 4
gpt4 key购买 nike

根据我的理解,SerializableAttribute 不提供编译时检查,因为它都是在运行时完成的。如果是这样,那么为什么需要将类标记为可序列化?

难道序列化程序不能只是尝试序列化一个对象然后失败吗?这不是它现在所做的吗?当某些东西被标记时,它会尝试并失败。如果必须将事物标记为不可序列化而不是可序列化不是更好吗?这样您就不会遇到库未将事物标记为可序列化的问题?

最佳答案

据我了解,SerializableAttribute 背后的想法是为二进制序列化创建一个选择加入系统。

请记住,与使用公共(public)属性的 XML 序列化不同,二进制序列化默认获取所有私有(private)字段。

这不仅可能包括不应公开的操作系统结构和私有(private)数据,而且反序列化它可能会导致损坏的状态,从而使应用程序崩溃(愚蠢的例子:一个句柄文件在另一台计算机上打开)。

关于c# - 为什么要序列化的对象需要Serializable Attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2982376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com