【问题标题】:Is the binary formatter smart about space when serializing?序列化时二进制格式化程序对空间是否智能?
【发布时间】:2009-12-03 07:21:57
【问题描述】:

简短而简单:如果我有一个对象有很多值 == 到它们的默认构造函数值,使用二进制格式化程序的序列化是否会在结果文件中省略它们以节省空间?我在想,因为无论如何这个值都是从类定义中知道的。

【问题讨论】:

    标签: .net memory serialization


    【解决方案1】:

    我猜答案是否定的,因为序列化程序应该如何知道您在构造函数中分配的值?它可以使用反射分配或从数据库中读取。如果默认值是指default(T),那就另当别论了。

    【讨论】:

    • 我猜你有一个关于序列化程序不知道默认值的观点。
    【解决方案2】:

    默认情况下不会这样猜测,除了可能使用DefaultValueAttribute 的值?为什么不试试看呢?

    【讨论】:

    • 我试试,不知道那个属性。
    • 我知道在 VS 视觉设计器和用户控件上的 VS 属性网格中考虑到了这一点。当具有该属性的属性具有默认值时,设计者不会将其初始化代码放入生成的表单初始化代码中。此外,它还启用了属性网格中属性的“重置”上下文菜单项,可让您将属性重置为其默认值。
    猜你喜欢
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2013-08-25
    • 2020-08-24
    相关资源
    最近更新 更多