【问题标题】:XML Serialization - handling special casesXML 序列化 - 处理特殊情况
【发布时间】:2010-07-12 16:50:52
【问题描述】:
我需要对一些类进行 XML 序列化,这些类在某些情况下不符合规则和准则,而这是使内置序列化工作所必需的。这包括作为接口类型的属性和没有设置器的属性。
我知道如何实现 IXmlSerializable,但这可能需要大量工作;因为大多数属性不需要特殊处理。我有什么办法只编写代码来处理这些“特殊属性”并让标准 XML 序列化程序序列化它知道如何序列化的属性?
此外,欢迎对开源库或类似库提出建议,这些库可以更好地将对象序列化为 XML,而无需太多自定义代码。
【问题讨论】:
标签:
c#
.net
xml
serialization
xml-serialization
【解决方案1】:
有一个名为Automapper 的工具,该工具将两种类型相互映射。对于您的问题,您可以构建标准符合类型并将非标准类型映射到该类型。大多数属性将使用自动映射器进行映射。您可以使用自己的方法映射特殊的。
首先你必须设置你的映射:
Mapper.CreateMap<ITestSequence, TestSequence>();
Mapper.CreateMap<ITestBlock, TestBlock>();
然后映射您的对象:
Mapper.Map(srcTb, dstTb);
这将设置所有常用属性。其余的你可以自己做。