你有没有使用过序列化代理以及为什么需要这个
本文关键字:为什么 代理 有没有 序列化 | 更新日期: 2023-09-27 18:25:43
我对ISerializationSurrogate
和何时可能需要有点困惑。那么,如果你使用它,你实现了什么目标?
ISerializationSurrogate
可用于控制对象的序列化。在某些情况下,我用它来使在线表示更加紧凑。例如车削
Size: {
Width: 20,
Height: 30
}
到
Size: 20x30
其他用途可能包括启用不可变对象进行序列化/反序列化。
ISerializationSurrogate 是我(反(序列化(列表(包含在封闭程序集中的对象的首选方法,这些对象未标记为[Serializable]
且无法修改。
实现此目的的唯一替代方法是一次手动构造一个属性的 XML 节点,这可能很繁琐。 现在,我为每个要序列化的对象编写一个类文件,并映射我选择的属性。 其余的自动发生,因为您可以使用SurrogateSelector
映射这些代理类。 公共类(如 List(是开箱即用的序列化。
用途是科林·布尔在另一个答案中描述的用法。