Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果wsdl不正确,并且生成的web引用无法进行反序列化,那么我有什么选择?_C#_Asp.net_Web Services_Soap - Fatal编程技术网

C# 如果wsdl不正确,并且生成的web引用无法进行反序列化,那么我有什么选择?

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,我可以看到我的web服务调用确实得到了返回正确数据的响应

问题是,我的响应对象为空,即web引用进行调用并返回数据,但实际的反序列化过程失败

我在谷歌上搜索了一下,可能是wsdl由于某种原因没有映射到返回的响应

如果我不能修改wsdl,我有什么选择

更新


在监视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);