【发布时间】:2013-08-01 08:54:37
【问题描述】:
我对@987654321@ 以及何时可能需要感到有些困惑。那么,如果你使用它,你实现了什么目标?
【问题讨论】:
标签: c# .net serialization deserialization
我对@987654321@ 以及何时可能需要感到有些困惑。那么,如果你使用它,你实现了什么目标?
【问题讨论】:
标签: c# .net serialization deserialization
ISerializationSurrogate 可用于控制对象的序列化。在某些情况下,我使用它来使在线表示更紧凑。比如转身
Size: {
Width: 20,
Height: 30
}
进入
Size: 20x30
其他用途可能包括使不可变对象能够被序列化/反序列化。
【讨论】:
ISerializationSurrogate 是我对(反)序列化(反序列化)包含在未标记为 [Serializable] 且无法修改的封闭程序集中的对象的首选方法。
实现此目的的唯一替代方法是手动构造您的 XML 节点一次一个属性,这可能很乏味。现在我为每个要序列化的对象编写一个类文件,并映射我选择的属性。其余的会自动发生,因为您可以使用 SurrogateSelector 映射这些代理类。通用类(如 List)开箱即用地序列化。
另一个用途是 Colin Bull 在另一个答案中描述的。
【讨论】: