XML序列化 - 处理特殊情况
问题描述:
我需要XML序列化某些类,它们在某些情况下不遵守规则和指导原则,这是为了使内置序列化工作所需要的。这包括属性,它们是接口类型和没有设置器的属性。XML序列化 - 处理特殊情况
我知道如何实现IXmlSerializable,但它可能是很多工作;因为大多数属性不需要特殊处理。有什么办法让我只编写代码来处理这些“特殊属性”,并让标准XML序列化程序序列化它知道如何序列化的属性?
此外,欢迎您提供有关开源库或类似工具的建议,它们可以更好地将对象序列化为XML,而无需太多自定义代码。
答
有一个工具叫做Automapper这个工具将两种类型相互映射。对于你的问题,你可以建立一个标准的符合类型,并将不标准的映射到这个类型。大多数属性将与automapper映射。特殊的你可以用你自己的方法进行映射。
首先,你必须设置你的映射:
Mapper.CreateMap<ITestSequence, TestSequence>();
Mapper.CreateMap<ITestBlock, TestBlock>();
然后映射你的opjects:
Mapper.Map(srcTb, dstTb);
这将设置所有公共属性。其余的你可以自己做。