ここに wsdl の SOAP フィールドがあります
<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 を変更できません