是否可以在序列化期间为类型定义自己的转换?

时间:2016-09-06 00:51:18

标签: c# .net serialization datacontract

我在类型上使用[DataContract]属性使其可序列化。一些属性/字段是结构类型,我不想按原样序列化,但是想要严格使用自定义类型进行序列化。

如何用类型替换序列化?

1 个答案:

答案 0 :(得分:0)

当您在.NET中使用.position()属性时,通常最终会使用DataContractSerializer序列化该类型。 [DataContract]具有名为DataContractSerializer的只读属性。此属性是IDataContractSurrogate接口。 (可以在构造函数上设置只读属性,也可以通过DataContractSerializerSettings类型设置)

该接口包含在序列化期间将一种类型转换为另一种类型的逻辑。接口提供了8种方法,但是为了在序列化和反序列化过程中将一种类型转换为另一种类型,您实际上只需要实现3.这是实现接口的类的基本结构,您可以在其中替换类型和转换逻辑

DataContractSurrogate