Skip to main content
 首页 » 编程设计

c#之向 Web 服务 C# 添加构造函数

2024年01月25日28jiqing9006

我正在尝试向我的 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() 

原因是当对象被反序列化时,反序列化器必须有一个创建对象实例的默认方式。