Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Есть ASP Web Service и WinForms приложение. Например на сервайсе есть классы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. эти же классы есть и на клиентском приложении. Возможно ли как то сделать что бы когда я прогруженный данными обьект типа Cars полученый с сервера, просто взял и присвоил локальному обьекту также типа Cars. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2009, 00:55 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
Это называется DataContract ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2009, 00:59 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
pion3r, Можно через конструктор: В описании контракта: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. На клиенте: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Ну и далее в коде: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 15:58 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
в WCF такое можно сделать, в вебсервисах - только так как показал Roman S. Golubin переходите на WCF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 16:16 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
Gatman, Собственно, я для WCF и показал :) У вас какой-то другой вариант есть? Делитесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 16:24 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
есть. при добавлении сервис референс в адвансед галочка - reuse types in referenced assemblies, ну и референсы на сборку с типами. тогда компилятор везде подставляет типы, которые в самой сборке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 16:28 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
Gatman, хмм... добавление сервис референс... излишняя процедура, создающая кучу (в 90% случаев) неюзабельного в дальнейшем кода... имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 16:31 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
ну, в случае установки этой галочки, кода становится в разы меньше глянуть сейчас не могу, но если не ошибаюсь, у меня генерилось по 1 или 2 файла на каждый сервис, файлы назвать большими я не могу. другое дело что при обновлениях референсов могут добавляться новые файлы, в то время как старые перестают использоваться. но тут нужно просто почистить папку с референсами (я обычно просто удаляю всё и пересоздаю их) а главное - руками писать ничего не нужно, просто создал прокси-класс и вызвал метод, передав нужный класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 16:36 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
Gatman, руками писать не нужно - это как? Как минимум, генерилка тогда должна знать какие локальные классы (и как) на классы контрактов отражать, иначе может такого нагенерить. Или мы о разных вещах говорим? Если речь идет о повторном использовании одного и того же класса контракта, то все просто - вынести контракты в отдельную сборку и подключать ее и к серверному и к клиентскому коду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 16:46 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
так в том то и дело, что используются одни и те же классы что на сервисе, что на клиенте. т.е. если есть сервис возвращает SomeType, то и на клиенте мы получаем сразу же именно этот SomeType, а не SomeTypeWS, сгенеренный при добавлении сервис MSDN MSDNWhen a service reference is added to a project, any types defined in the service are generated in the local project. In many cases, this creates duplicate types when a service uses common .NET Framework types or when types are defined in a shared library. To avoid this problem....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 16:54 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
т.е. классы не генерятся, а используется то что есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 16:57 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
кстати, сейчас присмотрелся к коду, который Вы привели выше. я правильно понял, что сборка, содержащая Car имеет ссылку на веб-сервис? и при это сам веб-сервис имеет ссылку на сборку, содержащую Car, т.к. он использует его внутри своих методов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 17:01 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
Gatman, Хм... а я по наивности просто сборку с контрактами подключаю и получаю теже самые классы, что и в сборке контрактов, но они мне не нужны, так как на сервере и на клиенте у них в 90% случаев разная функциональность. Поэтому я из них в локальные классы данные и перекладываю А у вас с генерилкой, оказывается, проблема обратная - как из нагенеренных классов в классы контракта данные переложить ;-D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 17:02 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
Gatmanкстати, сейчас присмотрелся к коду, который Вы привели выше. я правильно понял, что сборка, содержащая Car имеет ссылку на веб-сервис? и при это сам веб-сервис имеет ссылку на сборку, содержащую Car, т.к. он использует его внутри своих методов? Имеем: сборка с датаконтрактами, сервис со ссылкой на сборку с контрактами, клиента со ссылкой на сборку с контрактами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 17:07 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
Roman S. GolubinА у вас с генерилкой, оказывается, проблема обратная - как из нагенеренных классов в классы контракта данные переложить ;-Dну так проблемы собственно никакой нет. везде используются одни и те же классы. удобно, имеем одинаковую бизнес логику и на сервисе, и на клиенте. как следствие, что можно сделать на клиенте, делается на нём, и нет никаких накладных издержек на запрос к сервису. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 17:15 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
Roman S. GolubinGatmanкстати, сейчас присмотрелся к коду, который Вы привели выше. я правильно понял, что сборка, содержащая Car имеет ссылку на веб-сервис? и при это сам веб-сервис имеет ссылку на сборку, содержащую Car, т.к. он использует его внутри своих методов? Имеем: сборка с датаконтрактами, сервис со ссылкой на сборку с контрактами, клиента со ссылкой на сборку с контрактами.т.е. у Вас логика на клиенте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 17:16 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
Gatman, на сервере своя логика, на клиенте своя. На клиенте логика по отображению данных - синхронизация контекстов с UI и т.п., на сервере логика по обработке данных :) А в датаконтракте какая логика? Там ни какой логики - только данные для передачи между сервером и клиентом. Поэтому на клиенте и приходится мапить классы контракта в классы клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 17:21 |
|
||
|
общий класс у Web Service и клиента
|
|||
|---|---|---|---|
|
#18+
а попробуйте как я писал, Вам понравится, ничего мапить не надо. и аттрибуты типа DataContract и DataObject тоже можно не использовать, WCF хватает если класс помечен как XmlSerializable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 17:25 |
|
||
|
|

start [/forum/topic.php?fid=19&msg=35947720&tid=1397897]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 273ms |
| total: | 422ms |

| 0 / 0 |
