Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XML序列化-处理特殊情况_C#_.net_Xml_Serialization_Xml Serialization - Fatal编程技术网

C# XML序列化-处理特殊情况

C# XML序列化-处理特殊情况,c#,.net,xml,serialization,xml-serialization,C#,.net,Xml,Serialization,Xml Serialization,我需要用XML序列化一些类,这些类在某些情况下不符合规则和准则,这是使内置序列化工作所必需的。这包括接口类型的属性和不带setter的属性 我知道如何实现IXmlSerializable,但这可能需要大量的工作;因为大多数属性不需要特殊处理。我是否可以只编写代码来处理这些“特殊属性”,并让标准XML序列化程序序列化它知道如何序列化的属性 此外,欢迎对开放源代码库或类似库的建议,这些库可以更好地将对象序列化为XML,而无需太多自定义代码。有一个工具称为此工具,它可以将两种类型映射到彼此。对于您的问

我需要用XML序列化一些类,这些类在某些情况下不符合规则和准则,这是使内置序列化工作所必需的。这包括接口类型的属性和不带setter的属性

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

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

有一个工具称为此工具,它可以将两种类型映射到彼此。对于您的问题,您可以构建一个标准conform类型,并将非标准类型映射到此类型。大多数属性将使用自动映射器进行映射。你可以用自己的方法绘制特殊的地图

首先,您必须设置映射:

Mapper.CreateMap<ITestSequence, TestSequence>();
Mapper.CreateMap<ITestBlock, TestBlock>();
这将设置所有公共属性。剩下的你可以自己做

Mapper.Map(srcTb, dstTb);