简体   繁体   中英

Need Help for webservice

I generate one simple Web services. In it, when i call services, output will be display differently. code is...

public class DistictName
{
       public string DisticName { get; set; }
}
public class Distict
{
    public string DistictName { get; set; }
    public List<DistictName> DistName { get; set; }
}        

[WebMethod]
public Distict DistictNameByState(String StateName)
{
    Distict DName = new Distict();
    DName.DistName = new List<DistictName>();
    DataTable dtDistictName = clsDefault.getproduct("sp_getDistictName", "Distict", StateName.ToString());

    for (int i = 0; i < dtDistictName.Rows.Count; i++)
    {
        DName.DistName.Add(new DistictName() { DisticName = dtDistictName.Rows[i]["Distict_Name"].ToString() });
    }       
    return DName;
}

when I enter state name for example Gujarat and District name will be display on SoapUI editor like...

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <DistictNameByStateResponse xmlns="http://tempuri.org/">
         <DistictNameByStateResult>
            <DistName>
               <DistictName>
                  <DisticName>Ahmedabad</DisticName>
               </DistictName>
               <DistictName>
                  <DisticName>Amreli</DisticName>
               </DistictName>
               <DistictName>
                  <DisticName>Anand</DisticName>
               </DistictName>
               <DistictName>
                  <DisticName>Aravalli</DisticName>
               </DistictName>
               <DistictName>
                  <DisticName>Banaskantha</DisticName>
               </DistictName>
               <DistictName>
                  <DisticName>Bharuch</DisticName>
               </DistictName>
               <DistictName>
                  <DisticName>Bhavnagar</DisticName>
               </DistictName>               
            </DistName>
         </DistictNameByStateResult>
      </DistictNameByStateResponse>
   </soap:Body>
</soap:Envelope>

But i need this type of output...

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <soap:Body>
          <DistictNameByStateResponse xmlns="http://tempuri.org/">
             <DistictNameByStateResult>
                <DistName>                   
                      <DisticName>Ahmedabad</DisticName>                  
                      <DisticName>Amreli</DisticName>                   
                      <DisticName>Anand</DisticName>                 
                      <DisticName>Aravalli</DisticName>                  
                      <DisticName>Banaskantha</DisticName>                  
                      <DisticName>Bharuch</DisticName>                  
                      <DisticName>Bhavnagar</DisticName>                              
                </DistName>
             </DistictNameByStateResult>
          </DistictNameByStateResponse>
       </soap:Body>
    </soap:Envelope>

How to do it? what i can change in my Code...?

You need to return List<Distict> . So you need to use folloiwng code.

public class Distict
{
    public string DistictName { get; set; }
}        

[WebMethod]
public List<Distict> DistictNameByState(String StateName)
{
    List<Distict> DName = new List<Distict>();
    DataTable dtDistictName = clsDefault.getproduct("sp_getDistictName", "Distict", StateName.ToString());

    for (int i = 0; i < dtDistictName.Rows.Count; i++)
    {
        Distict dst = new Distict();
        dst.DisticName = dtDistictName.Rows[i]["Distict_Name"].ToString() ;
        DName.Add(dst);
    }       
    return DName;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM