내 프로젝트 중 하나에 ServiceReference를 추가했습니다.이 서비스가 .net으로 만들어 졌는지 확실하지 않습니다. 하나의 작업에 대한 호출을 수행 할 때 1 요소 및이 요소는 null 값으로 가득 차있다, 나는 바이올린과 데이터와 응답을 확인했습니다 올바르게 들어오고있다. 왜 이런 일이 일어나는 지 아십니까?자동 생성 된 SOAP 클라이언트가 응답을 구문 분석하지 않음
SoapResponse 구조 :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<searchOrderResponse xmlns="http://xml.comcast.com/nationalaccountsportal/services">
<searchOrderReturn>
<ns1:searchResult xsi:type="ns1:OrderDetails" xmlns:ns1="http://xml.comcast.com/nationalaccountsportal/types"> <!-- The data -->
<ns2:searchResult xsi:type="ns2:OrderDetails" xmlns:ns2="http://xml.comcast.com/nationalaccountsportal/types">
자동 생성 클래스 정의 :
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(WrapperName="searchOrderResponse", WrapperNamespace="http://xml.comcast.com/nationalaccountsportal/services", IsWrapped=true)]
internal partial class searchOrderResponse {
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://xml.comcast.com/nationalaccountsportal/services", Order=0)]
[System.Xml.Serialization.XmlElementAttribute("searchOrderReturn")]
public OrderDetails[] searchOrderReturn;
public searchOrderResponse() {
}
public searchOrderResponse(OrderDetails[] searchOrderReturn) {
this.searchOrderReturn = searchOrderReturn;
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.6.1590.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://xml.comcast.com/nationalaccountsportal/types")]
public partial class OrderDetails : object, System.ComponentModel.INotifyPropertyChanged {
searchOrderResponse 정의 WSDL에서 :
<element name="searchOrderResponse">
<complexType>
<sequence>
<element maxOccurs="unbounded" name="searchOrderReturn" type="tns1:OrderDetails"/>
</sequence>
</complexType>
</element>
감사합니다!
빈의 이상한 구현 것 같은데 도움이되기를 바랍니다 :이 후에는 다음과 같이 응답 클래스의 반환 형식을 변경해야 목록, 즉 버그가있는 서비스입니다. 전체 모음에 대한 NULL 값이 작동합니다. WSDL을 보지 않고도 말하기가 어렵다. – Namphibian
안녕하세요 @ Namphibian, wsdl의 searchOrderResponse 정의를 추가했습니다. 다른 모든 정의는 OrderDetails 배열을 직접 노출하는 것을 제외하고 나에게 표준으로 표시됩니다. 다른 응답에서 ResponseType 클래스를 만들 수도 있습니다. 다른 배열 형식의 응답이 없으므로이 서비스 내의 다른 작업과 비교합니다. –