В вашем классе
[DataContract]
public class XactTaskIn
у вас есть свойства, которые возвращают объекты:
[DataMember]
public object[] originalInputs;
[DataMember]
public object returnData;
WCF необходимо заранее знать, какие типы могут быть там, чтобы он мог сообщить клиенту (через WSDL), что это за типы. Для любых / всех не «нативных» типов (кроме int, string, DateTime и т. Д.) Вам нужно будет добавить атрибут [KnownType] для каждого возможного типа, который может быть передан обратно в свойства этого объекта, например:
[KnownType(typeof(XactException))]
[KnownType(typeof(...))]
[KnownType(typeof(...))]
[DataContract]
public class XactTaskIn
Таким образом, когда WCF создает WSDL для службы, он будет знать, добавить ли XactException в список типов данных, а также сериализатор будет знать, что искать эти классы.
Боковая примечание; если ваш клиент был построен с использованием SrvUtil, Service Reference или каким-либо образом сгенерирован из WSDL, вам нужно будет перестроить клиент после добавления атрибутов [KnownType]!