请考虑以下代码..
[Serializable]
public class Student
{
private string studentName;
private double gpa;
public Student()
{
}
public string StudentName
{
get{return this.studentName;}
set { this.studentName = value; }
}
public double GPA
{
get { return this.gpa; }
set { this.gpa = value; }
}
}
创建数组列表的方法
[WebMethod]
public void AddStudent(Student student)
{
studentList.Add(student);
}
[WebMethod]
public ArrayList GetStudent()
{
return studentList;
}
我想使用简单C#客户端表单应用程序来使用Web服务。
我的服务参考.学生=新建Consuming_WS.我的服务参考.学生();
MyServiceRef.Service1SoapClient client = new Consuming_WS.MyServiceRef.Service1SoapClient();
你知道吗?
提前感谢!
1条答案
按热度按时间gcuhipw91#
问题是您的Web服务不是无状态的。每次调用Web服务时,都会示例化Web服务类的一个新示例,并在此示例上调用方法。调用示例时,会为studentList分配一个新的空列表。
你需要改变你的状态管理。
可能会工作得更好,但它仍然不可靠。请查看http://www.beansoftware.com/asp.net-tutorials/managing-state-web-service.aspx处的文章,以获取在Session(或Application)中存储状态的示例。
编辑:添加了示例代码以避免使用ArrayList。
若要避免ArrayList和ArrayOfAnyType出现问题: