Отправить список с назначениями через WCF - PullRequest
1 голос
/ 29 марта 2012

Я хотел бы отправить список Appointment через WCF.Мой интерфейс выглядит следующим образом:

[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 Ответ

2 голосов
/ 29 марта 2012

Не ваша служба виновата, это класс вашего прохождения, Назначение. Начните с добавления [DataContract] в ваш класс. затем [DataMember] каждому из свойств, которые вы хотите передать.

Например, если вы начали с:

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

Вы можете сделать его сериализуемым с помощью DataContractSerializer WCF, добавив следующие атрибуты:

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

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