asp.net - 需要网络服务的帮助

标签 asp.net web-services

我生成了一个简单的 Web 服务。其中,当我调用服务时,输出将显示不同。代码是...

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;
}

当我输入州名称时,例如古吉拉特邦和地区名称将显示在 SoapUI 编辑器上,例如...
<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>

但我需要这种类型的输出...
<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>

怎么做?我可以在我的代码中更改什么...?

最佳答案

您需要返回 List<Distict> .所以你需要使用以下代码。

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;
}

关于asp.net - 需要网络服务的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29575781/

相关文章:

c# - 在 Web API 中转发和存储请求流

java - 使用 Spring Web Service 将 Hibernate 映射程序拆分为前端和后端

c# - 与 .net 中的 Web 服务共享接口(interface)

java - Soap Web 服务未针对 Java 中的自定义对象返回类型发布

c# - LINQ to SQL 比较性能

c# - 如何在构建后自动执行重复性任务?

web-services - 为什么使用分页标记?

web-services - 在 Amazon S3 上增长文件

c# - 在 C# 中运行时将字符串转换为类

asp.net - 离开 if 语句