【发布时间】:2017-06-14 19:35:27
【问题描述】:
所以在我收到回复后我会这样做(在这种情况下,T 是string):
var theResult = response.Content.ReadAsStringAsync().Result;
using (var stringreader = new StringReader(theResult))
{
var serializer = new XmlSerializer(typeof(T));
var responseObj = (T)serializer.Deserialize(stringreader);
}
theResult 是:
<string xmlns="http://tempuri.org/">Hello World</string>
当我执行Desrialize 时,我得到了一个例外。 <string xmlns='http://tempuri.org/'> was not expected. 作为内部异常,There is an error in XML document (2, 2). 作为消息。
我正在尝试将Hello World 反序列化为字符串或反序列化为一个对象,当我有多个元素且不仅仅是一个根元素时。当存在具有更多成员的根元素时,我想我已经弄清楚了。
【问题讨论】:
-
您需要从结果 SOAP 信封中删除命名空间。如果你写的服务,你可以添加 [WebService(Namespace = "")] 我认为!
-
不是我写的。
-
看看 XmlSerializerNamespaces。我认为您可以将一个作为 XML 设置传递给序列化程序并将其删除。失败了.. 添加 Web 服务时应该有一个引用类型.. 找到包含字符串的响应类型,您可能可以将其删除。
标签: c# xml soap httpclient