繁体   English   中英

如果wsdl不正确,并且我生成的Web参考无法进行反序列化,我有什么选择?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM