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

标签 c# web-services

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

相关文章:

java - 使用相同的元素重构 xsd 元素?

java - 无法获取我的 Rest Webservices 的输出,并且出现 HTTP 404 异常

.net - 使用 DataContractSerializer 和 XmlSerializer 进行 XML 序列化

c# - MVC Controller : Using LINQ to check for duplicate value already existing in table before Save?

c# - Google Protocol Buffers - protobuf-net 反序列化无法正常工作

c# - 如何获取标签和 NumericUpDown 中文本基线的位置?

c# - System.Threading.Timer 一段时间后没有触发

c# - 无法调用表单和类,无法使用Properties.Settings

java - java中的比较器和可比较的负面场景

android - 从 Android 应用程序调用 Web 服务的最佳方式