Reputation: 272
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...?
Upvotes: 4
Views: 44
Reputation: 7462
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;
}
Upvotes: 2