WCF пытается преобразовать внутренний класс в DataContract? - PullRequest
1 голос
/ 18 апреля 2020

У меня есть операция с этим определением:

[OperationContract]
ResponseEntity SaveMeasurements(string token, Entity sample);

Вот сокращенный код реализации:

public ResponseEntity SaveMeasurements(string token, MetroSampleEntity sample)
{
    // some other code goes here
    provider.Query(new SampleDataTable());
}

Я получаю эту ошибку:

Произошла ошибка при попытке сериализации параметра http://tempuri.org/: dt . Сообщение InnerException «Тип» с именем контракта данных «SampleDataTable: http://schemas.datacontract.org/2004/07/» не ожидается. Рассмотрите возможность использования DataContractResolver, если вы используете DataContractSerializer или добавляете любые типы, которые не известны статически, в список известных типов - например, с помощью атрибута KnownTypeAttribute или добавляя их в список известных типов, передаваемых сериализатору.

Я пытаюсь использовать SampleDataTable для внутренней транзакции, но WCF выбирает его как контракт данных ... или, по крайней мере, пытаюсь. Есть ли способ, которым я могу сказать WCF НЕ обрабатывать SampleDataTable как часть контракта?

Спасибо!


ОБНОВЛЕНИЕ:

Спасибо Мар c за лидерство. Объект провайдера в коде на самом деле является другим клиентом WCF, чей запрос запроса принимает тип DataTable. Хотя SampleDataTable расширяет DataTable, Query() НЕ "распознает его".

...