使用C#我希望能够将多个xml提要映射到一个自定义对象。每个xml提要都有相同类型的数据,但有自己的命名约定。
理想情况下,我希望为每个xml feed存储自己的映射,并在将xml数据复制到我的对象时自动应用它。我想这样做,因为系统可能会增长到数百个源,因此只需能够存储映射就可以比为每个feed编写代码更容易维护。
例如,我的对象包含
ID,姓名
xml feed one
代码,产品名称
xml feed two
UniqueID,FullName
所以映射将是
ID - >码 名称 - >产品名称
和
ID - >唯一身份 名称 - >全名
实现这一目标的最佳方式是什么?
答案 0 :(得分:0)
我会在配置文件中创建一个配置部分。然后,您可以为每个Feed提供一个节点。然后,其中的节点具有映射信息。 Feed节点中的节点将与c#对象中的属性匹配,节点值将是xml文件中的节点名称。如果它更复杂,你甚至可以添加完整的xpath路径。
<feed url="">
<id>Code</id>
<Name>ProductName</Name>
</feed>
然后在您的应用中,您可以加载Feed。然后在配置文件中搜索节点,以获取如何从xml文件中的字段将字段映射到C#对象。
只有一种方法可以在不更改应用程序的情况下轻松配置和增长,除非c#对象发生更改。