Soft009 Ответов: 0

Клиент веб-сервиса C# не работает с java WSDL


Привет,

Я пытаюсь получить список данных из сервиса Java we service от клиента c#.
Веб-служба возвращает список элементов. Но через клиент c# я могу захватить только данные первого элемента.

Как я могу получить список данных из ответа?

Здесь представлены автоматически сгенерированный код
Ссылка. cs
public WindowsFormsApplication1.ServiceReference1.tAddOnDto QueryAvaiableAddOnList(WindowsFormsApplication1.ServiceReference1.tAuthHeader AuthHeader, WindowsFormsApplication1.ServiceReference1.tQueryAvaiableAddOnListBO QueryAvaiableAddOnListBO) {
    WindowsFormsApplication1.ServiceReference1.QueryAvaiableAddOnListRequest inValue = new WindowsFormsApplication1.ServiceReference1.QueryAvaiableAddOnListRequest();
    inValue.AuthHeader = AuthHeader;
    inValue.QueryAvaiableAddOnListBO = QueryAvaiableAddOnListBO;
    WindowsFormsApplication1.ServiceReference1.QueryAvaiableAddOnListResponse retVal = ((WindowsFormsApplication1.ServiceReference1.QueryPortType)(this)).QueryAvaiableAddOnList(inValue);
    return retVal.AddOnDtoList;
}


/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17929")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://com.company.company/xsd")]
public partial class tAddOnDto : object, System.ComponentModel.INotifyPropertyChanged {
    private string offerCodeField;
    private string offerNameField;
    private string offerTypeField;
    private string effDateField;
    private string expDateField;
    private string autoContinueFlagField;
    private string duplicateFlagField;
    private string commentsField;
    /// <remarks/>    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
    public string OfferCode {
        get {
            return this.offerCodeField;
        }
        set {
            this.offerCodeField = value;
            this.RaisePropertyChanged("OfferCode");
        }
    }


Пример ответа XML

<ns:QueryAvaiableAddOnListBOResponse xmlns:ns="http://com.Comapny.companu/xsd">
         <AddOnDtoList>
            <OfferCode>7</OfferCode>
            <OfferName>默认资费计划</OfferName>
            <OfferType>4</OfferType>
            <EffDate>2016-08-08 09:30:35</EffDate>
            <ExpDate/>
            <AutoContinueFlag>N</AutoContinueFlag>
            <DuplicateFlag/>
            <Comments/>
         </AddOnDtoList>
         <AddOnDtoList>
            <OfferCode>794</OfferCode>
            <OfferName>AOC test</OfferName>
            <OfferType>3</OfferType>
            <EffDate>2016-08-30 00:00:00</EffDate>
            <ExpDate/>
            <AutoContinueFlag>N</AutoContinueFlag>
            <DuplicateFlag/>
            <Comments/>
         </AddOnDtoList>
         <AddOnDtoList>
            <OfferCode>ROAM_VAS_CODE</OfferCode>
            <OfferName>ROAM_VAS_CODE</OfferName>
            <OfferType>3</OfferType>
            <EffDate>2016-09-05 00:00:00</EffDate>
            <ExpDate/>
            <AutoContinueFlag>N</AutoContinueFlag>
            <DuplicateFlag/>
            <Comments/>
         </AddOnDtoList>
      </ns:QueryAvaiableAddOnListBOResponse>
   </soapenv:Body>
</soapenv:Envelope>


Что я уже пробовал:

вот мое кодирование
ServiceReference1.QueryPortTypeClient ServiceClient = new QueryPortTypeClient();
            ServiceReference1.tAuthHeader hed = new tAuthHeader();
            hed.Username = "?";
            hed.Password = "?";
            ServiceReference1.tQueryAvaiableAddOnListBO addBO = new tQueryAvaiableAddOnListBO();
            addBO.MSISDN = "94722009580";
            tAddOnDto tadd = new tAddOnDto();
            tadd = ServiceClient.QueryAvaiableAddOnList(hed, addBO);
            string a = tadd.OfferName.ToString();

0 Ответов