| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Распределённые приложения и сеть > [DataContract] vs [Serializable] |
| Автор: SpaceSpace 14.9.2009, 16:15 |
| Всем привет. Столкнулся с косяком, не могу понять как раскусить. Есть сервис и датаконтракт. сервис хостю на консоли, запускаю Генерю проксю по сервису. Объект помечен [DataContract] Так вот фишка в том, что когда я что-то запрашиваю у сервиса (метод без параметров) - мне все отлично приходит, а когда передаю в метод сервиса объект-параметр (генеренный объект) на сервис приходит пустой объект, - все поля имеют значения по умолчанию 0 и null вложенные объекты есть, но их поля - тоже 0 и null Прикол в том, чтьо если поменять атрибуты объекта с DataContract на Serializable - все начинает работать! Сгенеренные объекты в зависимости от используемого атрибута отличаются. У Serializable - больше полей(т.к. он весь класс считает сериализуемым) у DataContract - только те поля которые я пометик как датамембер, но появились куча xxxSpecified полей и пропертей. Объясните плз, почему не удается использовать [DataContract]\[DataMember]? Где я прогнал? |
| Автор: SpaceSpace 18.9.2009, 06:57 |
| Вот. Добавлено @ 06:59 Вот у людей та же проблема. http://blogs.microsoft.co.il/blogs/oshvartz/archive/2008/09/06/svcutil-generating-wcf-client-and-the-is-field-specified-issue.aspx http://thecodemonk.com/2009/04/27/first-usage-of-wcf-and-specified-fields/ но решения - жуткий изврат, теб более я публикую сервис и не контролирую того как сгенерят по нему проксю ( Получается если я выставляю сервис наружу, я еще должен дополнительно сообщить клиентам, что надо указать xxxSpecified=true?? это бага по моему. Как бы вообще отказаться от xxxSpecified полей, чтобы они не генерились? |
| Автор: PashaPash 18.9.2009, 14:42 |
| SpaceSpace, как именно проксю генеришь? обычный вызов svcutil http://localhost:58797/Service1.svc генерит проксю без всяких xxxSpecified. |
| Автор: SpaceSpace 18.9.2009, 17:34 |
| PashaPash, я генерю через студию. я почему то наивно думал что студия юзает тот же svcutil (( надо будет попробывать автоматизировать генерацию прокси через студию но уже по нормальному. и посмотреть как работат. |
| Автор: PashaPash 18.9.2009, 19:06 |
| SpaceSpace, через студию - как Service Reference? Или как Web Reference? |
| Автор: SpaceSpace 21.9.2009, 07:26 |
| PashaPash, конечно же как ServiceReference ;) |