通过WCF发送包含约会的列表

时间:2012-03-29 13:35:16

标签: wcf exchangewebservices generic-list appointment

我想通过WCF发送Appointment的列表。我的界面如下所示:

[ServiceContract]
    public interface IServices
    {
        [OperationContract]
        string addAppointments(List<Appointment> appointmentList);
    }

如果我调用我的WCF服务,我总是会收到以下错误:

  

键入'Microsoft.Exchange.WebServices.Data.Appointment'不能   序列化。考虑使用DataContractAttribute标记它   属性,并标记要用序列化的所有成员   DataMemberAttribute属性。请参阅Microsoft .NET Framework   其他支持类型的文档。

我的服务目前看起来像这样:

class Service : IServices 
    {
        public string addAppointments(List<Appointment> appointmentList)
        {
            foreach (Appointment app in appointmentList)
            {
                Console.WriteLine(app.Organizer.Name);
            }
            return "true";
        }
    }

1 个答案:

答案 0 :(得分:2)

这不是你的服务有问题,这是你通过的课程,约会。 首先将[DataContract]添加到您的班级。然后[DataMember]到你想传递的每个属性。

例如,如果你开始于:

public class Appointment{
    public DateTime Date { get; set; }
    public string Name { get; set; }
}

您可以通过添加这些属性使WCF的DataContractSerializer可序列化:

[DataContract]    
public class Appointment{
    [DataMember]
    public DateTime Date { get; set; }

    [DataMember]
    public string Name { get; set; }
}