XML序列化 - 处理特殊情况

问题描述:

我需要XML序列化某些类,它们在某些情况下不遵守规则和指导原则,这是为了使内置序列化工作所需要的。这包括属性,它们是接口类型和没有设置器的属性。XML序列化 - 处理特殊情况

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

此外,欢迎您提供有关开源库或类似工具的建议,它们可以更好地将对象序列化为XML,而无需太多自定义代码。

有一个工具叫做Automapper这个工具将两种类型相互映射。对于你的问题,你可以建立一个标准的符合类型,并将不标准的映射到这个类型。大多数属性将与automapper映射。特殊的你可以用你自己的方法进行映射。

首先,你必须设置你的映射:

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

然后映射你的opjects:

Mapper.Map(srcTb, dstTb); 

这将设置所有公共属性。其余的你可以自己做。