我需要使用第三方网络服务。对它的调用将是这样的: https://somesitename.com/Service.dll?[operation]?[parameter1]&[parameter2]
它根据调用的操作和操作的结果返回各种XML结构。 它可以这么简单:
<?xml version="1.0"?>
<RESULTS>
<VALUE>some return value here</VALUE>
</RESULTS>
或者对于返回稍微复杂数据的调用,它可能是这样的:
<?xml version="1.0" ?>
<RESULTS>
<RETURN>
<RESPONSEMSG>Some message.</RESPONSEMSG>
</RETURN>
<DATA>
<COUNT>1</COUNT>
<VALUE1>1</VALUE1>
<VALUE2>1</VALUE2>
<VALUE3>FALSE</VALUE3>
</DATA>
</RESULTS>
如果该调用发生了错误,它将返回类似的内容:
<?xml version="1.0" ?>
<RESULTS>
<RETURN>
<ERROR>Error Message.</ERROR>
</RETURN>
</RESULTS>
所以,基本上我只是尝试使用REST服务的XML响应。它没有数据合同,我所要做的只是提供给我的示例响应。我应该为每种类型的结果构建poco类吗?我想我会使用HTTPClient或WebClient来向服务发出请求。然后我需要以某种方式将生成的XML反序列化为一个我可以返回的对象。对于这种事情,是否有最佳实践或模式?任何建议都将不胜感激,谢谢!
答案 0 :(得分:0)
许多技术
linq2xml 或者你可以使用xpath,那里有大量的xml解析库。
linq2xml可能是最近最简单的。
只有linq2xml的问题在于,如果你在1函数中解析整个事情,你真的想要事先验证xml结构 - 找出问题。
答案 1 :(得分:0)
是POCO最适合这种情况。然后使用LINQ-to-XML解析XML。它总是很适合强类型编程