XML序列化 - 处理特殊情况

时间:2010-07-12 16:50:52

标签: c# .net xml serialization xml-serialization

我需要XML序列化某些类,这些类在某些情况下不遵守规则和指南,这是为了使内置序列化工作所必需的。这包括作为接口类型的属性和没有setter的属性。

我知道如何实现IXmlSerializable,但这可能是很多工作;因为大多数属性不需要特殊处理。有没有办法让我只编写代码来处理这些“特殊属性”,并让标准XML序列化程序序列化它知道如何序列化的属性?

此外,欢迎使用开源库或类似的建议,这些建议可以更好地将对象序列化为XML而不需要太多的自定义代码。

1 个答案:

答案 0 :(得分:1)

有一个名为Automapper的工具。此工具将两种类型相互映射。对于您的问题,您可以构建标准的符合类型,并将非标准类型映射到此类型。大多数属性将与automapper一起映射。您可以使用自己的方法进行特殊映射。

首先,您必须设置映射:

Mapper.CreateMap<ITestSequence, TestSequence>();
Mapper.CreateMap<ITestBlock, TestBlock>();

然后映射你的对象:

Mapper.Map(srcTb, dstTb);

将设置所有常见属性。其余的你可以自己做。