내가 자바 웹 서비스, 하나의 웹 메서드에 매개 변수를 사용자 정의 Java 형C#을 클라이언트 - 데이터 상호 운용성 문제
public class KeyList {
public Integer key;
public Integer[] nums ;
public Integer result;
}
웹 서비스가 결과 값을 업데이트하고 키리스트 객체를 반환 클라이언트에게.
이 웹 서비스에 대한 C# 클라이언트가 있습니다 (서비스 참조를 추가하고 wsdl URL을 가리키면 Visual Studio에서 생성됨). C#에서 keyList 객체를 받으면 첫 번째 부분 (Integer 키)이 0으로 나옵니다. KeyList 유형에서 Integer Key가 아닌 int 키를 사용하도록 Java 사용자 정의 유형을 변경하면 C# 클라이언트.
wsdl이 두 경우 (int와 Integer 사용)에서 크게 다른지 확인하고자했지만 minOccurs 속성 만 차이가 있음을 확인했습니다.
사용하는 경우
<xs:element name="key" type="xs:int" minOccurs="0" />
키 정수를 사용하는 경우 INT 키
<xs:element name="key" type="xs:int" />
제대로 서비스의 반환 값에 업데이트 된 정수를 수신하지 C#을 클라이언트의 원인은 무엇입니까
? 말할 필요도없이 Java 클라이언트를 사용하면 문제가 없습니다.편집 : 키리스트에 대한 VS에 의해 생성 C# 클래스 :
이공용 클래스하여 keyList :에서 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
Visual Studio에서 생성 한 수업을 게시 할 수 있습니까? – alun
또한 "Add Service Reference"또는 "Add Web Reference"를 사용 했습니까? –