Передача объекта в качестве параметра службе WCF - PullRequest
0 голосов
/ 14 сентября 2010

У меня есть метод AddEntity (объект o).Я выясняю, какой тип сущности на стороне сервера, используя отражение и тому подобное, и добавляю его в базу данных.Я использую объекты самообследования.Однако это ошибка, которую я получаю.

"Элемент содержит данные из типа, который сопоставляется с именем. Десериализатор не знает ни одного типа, который сопоставляется с этим именем."

Это ложь.У меня есть объект на стороне сервера, и у меня есть объект на стороне клиента в качестве прокси.Я просто передаю его как объект, потому что я обобщил метод AddEntity.

Я использую объект, потому что обобщения не являются сериализуемыми.Поэтому я не могу сделать что-то вроде этого:

[OperationContract] AddObject (T entity)

Любые предложения приветствуются.

1 Ответ

1 голос
/ 14 сентября 2010

Нет. Это не то, как работает WCF. WCF сериализует сущность для проводного форматирования и десериализует сущность на другой стороне. Процесс десериализации должен знать, какой тип должен быть десериализован - такая информация не является частью сериализованных данных. Этот тип определяется из параметра операции или типа возврата. Объект запрещен.

...