我想通过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";
}
}
答案 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; }
}