如果wsdl不正确,并且我生成的web引用无法进行反序列化,那么我有什么选择
本文关键字:反序列化 选择 什么 web 不正确 wsdl 如果 引用 | 更新日期: 2023-09-27 18:20:37
使用fiddler,我可以看到我的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
当监视fiddler时,我可以看到请求和响应。响应包含了我需要的所有数据,但我猜格式与VS.NET生成的不匹配。
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);