[英]Web Service Proxy Code Generated by WSDL.exe Versus “Update Web Reference” - Should I Care?
[英]If a wsdl is not correct and my generated web reference fails doing deserialization, what options do I have?
使用提琴手,我可以看到我的Web服务调用确实获得了正确数据的响应。
问题是,我的响应对象为null,即Web参考进行了调用并取回了数据,但实际的反序列化过程失败了。
我到处搜索,可能是wsdl出于某种原因未映射到返回的响应。
如果我没有修改wsdl的能力,我有什么选择?
更新资料
I am making the call like this:
var serviceTest = new SecretService.GetUserProfile();
SecretService.ASADataset response = serviceTest.GetUserProfile("123");
// response is null
监视提琴手时,我可以看到请求和响应。 响应包含了我需要的所有数据,但是我猜测格式与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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.