C# WebMethod 返回列表<对象>
Posted
技术标签:
【中文标题】C# WebMethod 返回列表<对象>【英文标题】:C# WebMethod retuen List<Object> 【发布时间】:2019-03-16 05:20:18 【问题描述】:我想在我的网络方法中返回 List,如下所示,
public List<Object> MyMethod()
List<Object> list = new List<Object>();
myClass a = new myClass();
list.Add(a);
return list;
public class myClass
public int StudetNumber get; set;
public string StudentName get; set;
public decimal average get; set;
但我收到此错误: System.InvalidOperationException : myClass 不是预期的。 System.Xml.Serialization.XmlSerializationWriter.WriteTypedPrimitive(string name, string ns, Object o, Boolean xsiType);
返回 myClass 列表时,我没有收到错误消息。可以返回 List of System.Object 还是必须返回 List of myClass ?
感谢您的提前。
【问题讨论】:
向我们展示您的“myClass”类型 @John 我编辑了问题 我刚刚测试了您的代码,似乎工作正常...您只是缺少一个“;”在你的 myClass 类中的“set”旁边。看看这个小提琴dotnetfiddle.net/dbaro4 您的myClass
类是否使用[Serializable]
属性装饰?
您是否有机会在记事本中编码? :-
【参考方案1】:
看来我现在明白你的问题了。在 Web 方法中返回诸如“Object”或List<Object>
之类的泛型类型似乎不兼容,因为在 Web 方法中您将拥有 XML 定义(WSDL)并且无法定义泛型类型在那个定义中。因此,您似乎需要始终返回一个已定义的类,在您的情况下为“myClass”。
看看下面讨论这个话题的帖子,这样你会更清楚一点:
How do I return a C# web service that has a generic property?
【讨论】:
【参考方案2】:您的类定义中缺少保留字“类” 你少了几个';'s
public class myClass
public int StudetNumber get; set;
public string StudentName get; set;
public decimal average get; set;
【讨论】:
嗨,谢谢你的回答,但我在手机上写了这个问题,我忘记了你难过的事情:) 通常在项目中 myClass 就像你上面写的那样。以上是关于C# WebMethod 返回列表<对象>的主要内容,如果未能解决你的问题,请参考以下文章
需要帮助 - 从 WebMethod (ASP.NET) C# 调用时,MasterPage 始终返回 null