Meg*_*ark 2 c# xml wcf wsdl web-services
第三方给了我一个 wsdl。这个 wsdl 是使用 MessageContract 定义的(我很遗憾地说,经过多次谷歌搜索后,我仍然不明白从客户端角度使用MessageContract与ServiceContract时有什么区别)
实例化一个BaseComplex类型的新复杂对象后,该对象由ComplexA[]和ComplexB[]数组组成,其中ComplexA有Decimal和Decimal?定义属性后,我然后调用传入BaseComplex类型的服务方法。(不幸的是,由于防火墙的原因,我无法在本地调试服务请求,但是,我已经验证了BaseComplex.ComplexA.Decimal字段在调用服务之前有一个值。)
将代码放置在服务器上后,我的团队就使用 WireShark 来准确查看通过网络传输的数据包中的内容。当我们看到这个时,ComplexA.Decimal字段已被省略......甚至没有空标签。
我能想到的唯一步骤发生在client.SendRequest(BaseComplex)之间调用和 WireShark 输出显示之间的步骤是 .Net 框架的 Xml 序列化。我已经用谷歌搜索了这个问题,但没有找到任何可以给我指明正确方向的东西。
为什么我的客户端无法正确发出请求 xml?
一些注意事项:
非常感谢任何和所有的帮助。如果需要样品,请索取(我没有在这篇文章中包含样品,因为出于安全原因需要对其进行屏蔽)
所以,我已经弄清楚了。wsdl 定义的对象具有小数和可为空的小数以及每个定义为 DecimalFieldIsSpecified 的布尔值。由于某些不正当的原因,有必要手动将这些设置为 true 以便 xmlserializer 拾取字段......