C# 如果wsdl不正确,并且生成的web引用无法进行反序列化,那么我有什么选择?
使用fiddler,我可以看到我的web服务调用确实得到了返回正确数据的响应 问题是,我的响应对象为空,即web引用进行调用并返回数据,但实际的反序列化过程失败 我在谷歌上搜索了一下,可能是wsdl由于某种原因没有映射到返回的响应 如果我不能修改wsdl,我有什么选择 更新C# 如果wsdl不正确,并且生成的web引用无法进行反序列化,那么我有什么选择?,c#,asp.net,web-services,soap,C#,Asp.net,Web Services,Soap,使用fiddler,我可以看到我的web服务调用确实得到了返回正确数据的响应 问题是,我的响应对象为空,即web引用进行调用并返回数据,但实际的反序列化过程失败 我在谷歌上搜索了一下,可能是wsdl由于某种原因没有映射到返回的响应 如果我不能修改wsdl,我有什么选择 更新 在监视fiddler时,我可以看到请求和响应。响应包含我需要的所有数据,但我猜格式与VS.NET生成的不匹配。OP询问如何将xml(从fiddler)反序列化到对象 public object DeserializeObje
在监视fiddler时,我可以看到请求和响应。响应包含我需要的所有数据,但我猜格式与VS.NET生成的不匹配。OP询问如何将xml(从fiddler)反序列化到对象
public object DeserializeObject(string xml, Type type)
{
var xs = new XmlSerializer(type);
var stringReader = new StringReader(xml);
var obj = xs.Deserialize(stringReader);
stringReader.Close();
return obj;
}
// Usage
var serializer = new Serializer();
var response = (Response)serializer.DeserializeObject(
responseXml, typeof(Response));
最糟糕的情况是,您可以手动发布到URL并获得如下响应xml-
Uri uri = new Uri(PostUrl);
var responseXml = client.UploadString(uri, requestXml);
您能否说明您是如何使用和/或创建web引用实例的?你也可以在本地调试这个问题并进入代码中吗?@DJKRAZE我已经用代码更新了我的问题。是的,我可以在本地调试它,但我无法进入调用的代码,我试过了,但它没有进入源代码。好的,让我问你这个问题。当你在本地导航到基于URL的URL时,你可以通过测试调用来调用它吗?当你运行它时,它可以工作并且需要显示更多的代码,比如你如何使用和或引用响应。你可以使用对象浏览器查看GetUserProfile是否存在以及它的参数类型是什么吗真的是..@publicstatic您能手动反序列化来自fiddler的响应数据吗?@win我该怎么做?
Uri uri = new Uri(PostUrl);
var responseXml = client.UploadString(uri, requestXml);