C#WebMethod获取列表<对象>

时间:2018-10-11 07:38:03

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

我想通过如下所示的网络方法返回列表,

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(字符串名称,字符串ns,对象o,布尔值xsiType);

当它返回myClass列表时,我没有收到错误。可以返回System.Object的列表,还是我必须返回myClass的列表?

感谢前进。

2 个答案:

答案 0 :(得分:0)

您在班级定义中缺少保留字“班级” 您缺少一些';'s

  public class myClass
    {
        public int StudetNumber { get; set; }
        public string StudentName { get; set; }
        public decimal average { get; set; }
    }

答案 1 :(得分:0)

看来我现在已经明白了您的问题。在Web方法中返回通用类型(例如“ Object”或List<Object>)似乎不兼容,因为在Web方法中,您将具有XML定义(WSDL),并且无法定义该定义中的泛型类型。因此,似乎您需要始终返回定义的类,在您的情况下为“ myClass”。

请看以下讨论该主题的帖子,这样对您来说会更加清楚:

How do I return a C# web service that has a generic property?