私は、Java Webサービス、および1つのWebメソッドのパラメータを持っているが、カスタムJava型C#クライアント - データの相互運用性の問題
public class KeyList {
public Integer key;
public Integer[] nums ;
public Integer result;
}
Webサービスが結果値を更新し、キーリストオブジェクトを返します。クライアントに送信します。
私はこのWebサービスに対してC#クライアントを持っています(Service Referenceを追加し、wsdl urlを指し示すことでVisual Studioで生成されます)。 C#でkeyListオブジェクトを受け取ると、最初の部分(整数キー)が0になります。 KeyListタイプでintキー(Integer Keyではなく)を使用するJavaカスタムタイプを変更すると、 C#クライアント。
wsdlが2つのケース(intとIntegerを使用)で大幅に異なるかどうかを確認したいのですが、違いはminOccurs属性だけです。
使用している場合
<xs:element name="key" type="xs:int" minOccurs="0" />
キー整数を使用するときにint型のキー
<xs:element name="key" type="xs:int" />
正しくサービスからの戻り値で更新整数を受けていないC#クライアントのための原因は何ですか
?言うまでもなく、どちらの方法でもJavaクライアントで正常に動作します。編集:キー・リストのためのVSによって生成 C#クラス:
パブリッククラスキーリスト:JavaでINotifyPropertyChangedの{
private int keyField;
private bool keyFieldSpecified;
private int?[] numsField;
private PropertyChangedEventHandler PropertyChanged;
private int resultField;
private bool resultFieldSpecified;
public event PropertyChangedEventHandler PropertyChanged;
public keyList();
protected void RaisePropertyChanged(string propertyName);
[XmlElement(Form=XmlSchemaForm.Unqualified, Order=0)]
public int key { get; set; }
[XmlElement("nums", Form=XmlSchemaForm.Unqualified, IsNullable=true, Order=1)]
public int?[] nums { get; set; }
[XmlElement(Form=XmlSchemaForm.Unqualified, Order=2)]
public int result { get; set; }
[XmlIgnore]
public bool resultSpecified { get; set; }
}
これは実際にはJavaの問題ではなく、C#の質問です。あなたの質問は、主にJavaの問題ではなく、C#クライアントの動作に関係しています。タグを付ける。 – skaffman
ビジュアルスタジオがあなたのために生成したクラスを投稿できますか? – alun
また、これは「サービス参照の追加」または「Web参照の追加」を使用して行われましたか? –