[英]Consuming a webservice php with C#
这是wsdl肥皂场
<element name="transactionCle" nillable="true" type="xsd:int"/>
当我用PHP调用WS时,我用__getLastResponse()
显示肥皂
我为transactionCle得到的:
<transactionCle href="#id50"/>
这是该领域的裁判:
<multiRef xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id50" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:int">12708584</multiRef>
我向与php一起使用的Apache服务器提供的wsdl添加了新的WebReference。
生成的代理类为我提供了该字段:
private System.Nullable<int> transactionCleField;
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public System.Nullable<int> transactionCle {
get {
return this.transactionCleField;
}
set {
this.transactionCleField = value;
}
}
现在我的问题:
当我在php中使用WS时,transactionCle的值为12708584
当我在C#中使用WS时,transactionCle的值为null
如果我手动修改了从System.Nullable到int的代理类,现在C#给了我超值(12708584)。
但是当我更新Webreference时,我必须再次修改代理类。
这是我的问题:我如何:
或将transactionCle设置为int类型而不修改代理类?
或使序列化给我带来良好的价值?
编辑:我不能修改WS php或wsdl
将以下属性添加到wsdl中的transactionCle-element
minOccurs="1" maxOccurs="1"
然后重新生成代理。 如果有帮助,那么您可以做三件事:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.