Как выставить пользовательский объект (с подчиненными объектами) в веб-сервисе? - PullRequest
0 голосов
/ 11 февраля 2010

Я немного новичок в веб-службах и хочу убедиться, что я все делаю правильно.

У меня есть пользовательский объект, который также имеет дочерние объекты. (скажем, объект Company, подобъект - это коллекция объектов Employee)

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

Каков наилучший способ сделать это? Я пытался просто сериализовать его, но это тоже не сработало.

Я попробовал эту DLL http://www.codeproject.com/KB/linq/linqsqlserialization.aspx

Но выходной XML, похоже, не включает подобъект.

1 Ответ

1 голос
/ 11 февраля 2010

Независимо от того, используете ли вы инфраструктуру 2.0 (с веб-службами ASMX, которая больше не поддерживается) или инфраструктуру 3.0 (с WCF), обе они будут обрабатывать возврат сложных объектов при условии их сериализации. В платформе 2.0 это означает возможность маркировать ваши объекты с помощью атрибута [Serializable]. В платформе 3.0 вы реализуете сериализацию, используя атрибут [DataContract]. http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx и http://msdn.microsoft.com/en-us/library/system.serializableattribute.aspx.

Обе платформы позволят WSDL на стороне клиента при подготовке клиентов к использованию ваших сложных объектов. Так как они не являются примитивами, вы будете ограничены клиентами на основе SOAP, потому что возвращаемая полезная нагрузка потребует сложного представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...