У меня есть эти классы:
[DataContract]
public class ErrorBase {}
[DataContract]
public class FileMissingError: ErrorBase {}
[DataContract]
public class ResponseFileInquiry
{
[DataMember]
public List<ErrorBase> errors {get;set;};
}
Экземпляр класса ResponseFileInquiry - это то, что мой сервисный метод возвращает клиенту.Теперь, если я заполняю ResponseFileInquiry.errors экземплярами ErrorBase, все работает нормально, но если я добавляю экземпляр унаследованного типа FileMissingError, я получаю исключение на стороне службы во время сериализации:
Type 'MyNamespace.FileMissingError' with data contract name 'FileMissingError'
is not expected. Add any types not known statically to the list of known types -
for example, by using the KnownTypeAttribute attribute or by adding them to the
list of known types passed to DataContractSerializer.'
Итак, сериализатор получаетсбит с толку, поскольку ожидает, что список будет содержать объекты объявленного типа (ErrorBase), но он получает объекты унаследованного типа (FileMissingError).
У меня есть целая куча типов ошибок, и список будет содержать их комбинации, так чтоя могу сделать, чтобы это работало?