Ваши контракты данных используют механизм XmlSerializer, но ваш OperationContract использует DataContractSerializer.
Примените атрибут XmlSerializerFormatAttribute в контракте на операцию
Из MSDN http://msdn.microsoft.com/en-us/library/ms732038(v=VS.90).aspx
Иногда DataContractSerializer не подходит для сериализации ваших типов. WCF поддерживает альтернативный механизм сериализации XmlSerializer, который также можно использовать для сериализации параметров. XmlSerializer позволяет вам больше контролировать итоговый XML с помощью таких атрибутов, как XmlAttributeAttribute. Чтобы переключиться на использование XmlSerializer для конкретной операции или для всей службы, примените атрибут XmlSerializerFormatAttribute к операции или службе. Например:
[ServiceContract]
public interface IAirfareQuoteService
{
[OperationContract]
[XmlSerializerFormat]
float GetAirfare(Itinerary itinerary, DateTime date);
}
Для получения дополнительной информации см. Использование класса XmlSerializer. Помните, что ручное переключение на XmlSerializer, как показано здесь, не рекомендуется, если у вас нет особых причин для этого, как подробно описано в этом разделе.