【问题标题】:C# WebMethod retuen List<Object>C# WebMethod 返回列表<对象>
【发布时间】: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] 属性装饰?
  • 您是否有机会在记事本中编码? :-}

标签: c# xml web-services xml-serialization webmethod


【解决方案1】:

看来我现在明白你的问题了。在 Web 方法中返回诸如“Object”或List&lt;Object&gt; 之类的泛型类型似乎不兼容,因为在 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 就像你上面写的那样。
    猜你喜欢
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多