在 Web 服务中返回列表时,只有在返回值时才会出现错误?

Posted

技术标签:

【中文标题】在 Web 服务中返回列表时,只有在返回值时才会出现错误?【英文标题】:When returning a list in the web service, I get an error only if a value is returned? 【发布时间】:2020-09-15 10:09:03 【问题描述】:

列表在 api 中返回。如果数据库中有多个值,我不会收到错误消息。正确返回列表。但是当我得到一个值时,我在使用 api 时会出错。

这是我的代码;

WebService1.asmx

[WebMethod(EnableSession = true)] 
public List<AP_City> AA_Send_CountryCode(string us, string ps, string country_code) 
 
    AP_City menuclass = new AP_City(); 
    List<AP_City> menuliste = new List<AP_City>(); 
    DbClassSQL db = new DbClassSQL();

    DataTable dt2x = db.Doldur("SELECT * FROM AP_City where CountyCode='" + country_code + "' order by OrderNumber");


    if (dt2x.Rows.Count > 0)
    
        for (int i = 0; i < dt2x.Rows.Count; i++)
        
            menuclass.Id = Convert.ToInt32(dt2x.Rows[i]["Id"]);
            menuliste.Add(menuclass);
            menuclass = new AP_City();
        
    

    return menuliste;

这是我的课

namespace Deneme

    public class AP_City
    
        public int Id  get; set; 
    

【问题讨论】:

【参考方案1】:

更改以下行:

    menuclass.Id = Convert.ToInt32(dt2x.Rows[i]["Id"]);
    menuliste.Add(menuclass);
    menuclass = new AP_City();

到:

    menuliste.Add(new AP_City() Id = Convert.ToInt32(dt2x.Rows[i]["Id"]));

并删除该行:

    AP_City menuclass = new AP_City();

【讨论】:

以上是关于在 Web 服务中返回列表时,只有在返回值时才会出现错误?的主要内容,如果未能解决你的问题,请参考以下文章

asmx Web 服务在 .net 4.0 中返回 xml 而不是 json

颤振状态不会更新

编译器可以省略以下副本吗?

为什么只有当函数不使用序列破坏时才会发生StackOverflowError?

div 上的滚动条只有在它有超过 30 个项目时才会出现

我的 AdMob 广告仅在我导航到另一个页面然后返回时才会加载