我需要将我的域对象转换为xml文档以进行第三方数据交换。
我有一个映射文档,其中包含来自我的域的数据的位置以及此数据导出到xml文档中的xpath。
我要做的是构建一个引擎来读取这个映射文件,从我的域对象中提取数据并构建正确的xml文档。
我目前的困难是在构建xpath时我需要确保xml序列以正确的顺序放置。
有关如何处理此事的任何建议?
**我试图避免将代表xml文档的类引入我的代码库。这样我们就可以添加新的导出而无需重新编译项目。
答案 0 :(得分:1)
我会建议一些与你所要求的有点不同的东西,因为我发现xpath有点麻烦,当我第一次开始使用LINQ to XML时,这是我内心的一次小小的快乐革命。
这里的一个优点是,如果您决定要进行不同的序列化,那么代码更改很少,您只需要找到一个Linq to(Json,SQL等)库(其中有很多,以及其他东西)像SQL一样由Microsoft提供,并进行非常小的代码更改。
在msdn。
上查看Linq to Xml如果您认为您可能对此感兴趣,或者更多关于Linq,我发现这本书 Linq in Action 是一本非常好的书,可以帮助您掌握基础知识。
答案 1 :(得分:1)
最简单的方法是从生成消息所需的各种接口上公开的合同中生成类型库。对于wcf端点,可以使用xsd.exe或svcutil.exe执行此操作。
然后,如果您需要为特定接口生成xml实例,只需弹出该接口类型的实例,并使用XmlSerializer.Serialize()为该接口序列化实例消息。
这有以下好处:
如果您希望我更详细地解释任何步骤,请通过评论告诉我。
希望这有帮助。