我正在尝试向我的 web 服务添加一个构造函数,它看起来像这样:
public class ILotusNotesService : System.Web.Services.WebService
{
List<Calendar> cal = new List<Calendar>();
[WebMethod]
public List<Calendar> GetAllCal(string room)
{
DateTime d_start = new DateTime(2012,1,3,12,30,0);
DateTime d_end = new DateTime(2012, 1, 3, 13, 00, 0);
Calendar c1 = new Calendar("Søren Steffensen", "Mødelokale 1", "Privat", d_start, d_end);
DateTime d_start2 = new DateTime(2012, 1, 3, 13, 30, 0);
DateTime d_end2 = new DateTime(2012, 1, 3, 14, 00, 0);
Calendar c2 = new Calendar("Knud Olesen", "Mødelokale 1", "Privat", d_start2, d_end2);
DateTime d_start3 = new DateTime(2012, 1, 3, 15, 30, 0);
DateTime d_end3 = new DateTime(2012, 1, 3, 16, 00, 0);
Calendar c3 = new Calendar("Morten Nielsen", "Mødelokale 1", "Miljø Politik", d_start3, d_end3);
cal.Add(c1);
cal.Add(c2);
cal.Add(c3);
return cal;
}
构造器看起来像这样
[DataContract(Name = "Calendar")]
public class Calendar: System.Web.Services.WebService
{
[DataMember(Name = "_meetingHolder")]
public String _meetingHolder { get; set; }
[DataMember(Name = "_meetingRoom")]
public String _meetingRoom { get; set; }
[DataMember(Name = "_status")]
public String _status { get; set; }
[DataMember(Name = "_startTime")]
public DateTime _startTime { get; set; }
[DataMember(Name = "_endTime")]
public DateTime _endTime { get; set; }
public Calendar(string meetingHolder, string MeetingRoom,string status, DateTime startTime, DateTime endTime)
{
this._meetingHolder = meetingHolder;
this._meetingRoom = MeetingRoom;
this._status = status;
this._startTime = startTime;
this._endTime = endTime;
}
}
但我一直收到这个错误:
LotusNotesServiveLibrary.Calendar cannot be serialized because it does not have a default public constructor
最佳答案
在编写可以序列化的对象时,必须提供一个没有参数的构造函数(默认构造函数):
public Calendar()
原因是当对象被反序列化时,反序列化器必须有一个创建对象实例的默认方式。
关于c# - 向 Web 服务 C# 添加构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9063963/