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

标签 c# .net xml serialization xml-serialization

我需要对某些类进行 XML 序列化,这些类在某些情况下不遵守规则和准则,而这些是使内置序列化工作所必需的。这包括接口(interface)类型的属性和没有 setter 的属性。

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

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

最佳答案

有一个工具叫做 Automapper该工具将两种类型相互映射。对于您的问题,您可以构建一个标准的符合类型并将非标准类型映射到这个类型。大多数属性将使用自动映射器进行映射。您可以使用自己的方法映射的特殊对象。

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

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

然后映射你的对象:

Mapper.Map(srcTb, dstTb);

这将设置所有公共(public)属性。剩下的你可以自己做。

关于c# - XML 序列化 - 处理特殊情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3230414/

相关文章:

java - 在 Android Studio 中搜索并保存文本文件中的值?

c# - 来自不同文件类型的文本提取库,PDF、DOC、DOCX、TXT c#

c# - AS400 C#.net插入新记录问题

c# - 在特定位置抑制 RichTextBox 中的换行符

asp.net - Visual Studio 调试器仍然显示从 iframe 中删除的旧页面

javascript - 使用 Blazor(即 WebAssembly)+ javascript

c# - 如何连接 2 个列表

c# - 当我更新应用程序时文件会发生什么?

c# - EF Core 3.0 .Include 无法按预期工作且超慢

C# TCP Socket 客户端拒绝连接