你有没有使用过序列化代理以及为什么需要这个

本文关键字:为什么 代理 有没有 序列化 | 更新日期: 2023-09-27 18:25:43

我对ISerializationSurrogate和何时可能需要有点困惑。那么,如果你使用它,你实现了什么目标?

你有没有使用过序列化代理以及为什么需要这个

ISerializationSurrogate可用于

控制对象的序列化。在某些情况下,我用它来使在线表示更加紧凑。例如车削

 Size: {
   Width: 20,
   Height: 30
 }

 Size: 20x30

其他用途可能包括启用不可变对象进行序列化/反序列化。

ISerializationSurrogate 是我(反(序列化(列表(包含在封闭程序集中的对象的首选方法,这些对象未标记为[Serializable]且无法修改。

实现此目的的唯一替代方法是一次手动构造一个属性的 XML 节点,这可能很繁琐。 现在,我为每个要序列化的对象编写一个类文件,并映射我选择的属性。 其余的自动发生,因为您可以使用SurrogateSelector映射这些代理类。 公共类(如 List(是开箱即用的序列化。

另一个

用途是科林·布尔在另一个答案中描述的用法。