|
15 / 0 / 0
Регистрация: 08.10.2013
Сообщений: 41
|
|||||||||||||||||||||||||||||||
Получение сервисом WCF списка (коллекции)25.03.2016, 00:21. Показов 5769. Ответов 48
Всем привет!
Может поможете ![]() Помогите пожалуйста разобраться с сервисом WCF. вопрос нубский таковым я и являюсь ![]() Суть проблемы (цель): Создать метод в WCF который принимает пользовательскую коллекцию. Предполагается что структура данных будет всегда одинаковой (фиксированной), разница будет только в кол-ве элементов "Customer" Примерная структура чтобы была вот такой Пример пакета XML
На стороне сервера есть следующий код (часть данных вырезана). ServiceContract
DataContract
Реализация
Выполняю код: Кликните здесь для просмотра всего текста
Вот на этой строке
Ошибка BC30311 Значение типа "List(Of Customer)" невозможно преобразовать в "Cust_List()". Что я делаю не так? Может кто скинет аналогичный пример ![]() Добавлено через 5 минут Пытался разобраться с KnownTypeAttribute так и не вышло ![]() все примеры которые рассматривал они на Шарпе, после конвертации кода может что-то теряется... в общем крутил вертел одни сплошные ошибки
0
|
|||||||||||||||||||||||||||||||
| 25.03.2016, 00:21 | |
|
Ответы с готовыми решениями:
48
Получение bitmap из WCF Получение данных от сервера WCF |
|
|
||
| 05.04.2016, 20:04 | ||
|
1
|
||
|
0 / 0 / 0
Регистрация: 19.02.2016
Сообщений: 11
|
|
| 05.04.2016, 21:08 | |
|
Как я понял, Reference.cs... Ох и не просто же было его найти! Спасибо большое за помощь!
0
|
|
|
27 / 27 / 10
Регистрация: 18.08.2014
Сообщений: 212
|
|||||||||||
| 15.07.2016, 15:21 | |||||||||||
|
Доброго дня...
Имеется приложение Silverlight. Также создал веб-службу по шаблону Служба WCF с поддержкой Silverlight. При создании OperationContract методов, с использованием базовых типов, с добавлением ссылки на службу проблем нет и все работает. Если использовать к примеру List<string> то при добавлении ссылки, то
0
|
|||||||||||
|
|
|
| 15.07.2016, 16:01 | |
|
FroztBal, у вас возвращаемый тип - DbCommand. Он не сериализуется, следовательно, передать его невозможно. Да и смысла в этом я не вижу. Опишите задачу подробнее, уверен есть более правильное решение.
0
|
|
|
27 / 27 / 10
Регистрация: 18.08.2014
Сообщений: 212
|
||||||
| 15.07.2016, 21:58 | ||||||
|
Есть приложение silverlight которое общается с БД Oracle, чтение/запись. Часть логики реализована на PL\SQL.
Пересмотрел уроки по веб-службам. Пытался DomainService использовать, но почему-то в моей VS2013U отсутствует шаблон DomainService, а шаблон Open RIA WCF DomainService не открывается вываливается ошибка. Поэтому решил воспользоваться шаблоном Служба WCF с поддержкой Silverlight. На стороне сервера есть класс для работы с БД в нем два метода: Кликните здесь для просмотра всего текста
С клиента в случае записи в БД нужно передать название процедуры и параметры В случае получения данных нужно передать название процедуры и параметры и получить от сервера данные
0
|
||||||
|
|
|
| 16.07.2016, 04:32 | |
|
FroztBal, самое первое что необходимо сделать - это определить контракты данных, которые вы планируете передавать между клиентом и сервером. После этого уже продумать логику работы с БД. При желании можно вообще не заморачиваться реализацией под конкретного провайдера данных, а сделать общую логику, для каждого провайдера написать свою dll, через которую и взаимодействовать с БД.
0
|
|
|
27 / 27 / 10
Регистрация: 18.08.2014
Сообщений: 212
|
||||||
| 18.07.2016, 11:13 | ||||||
|
Есть контракт
Кликните здесь для просмотра всего текста
При попытке добавить ссылку на службу: Вложение 718250 Убираю этот контракт, остаются только контракты с базовыми типами, все нормально.
0
|
||||||
|
27 / 27 / 10
Регистрация: 18.08.2014
Сообщений: 212
|
|
| 18.07.2016, 12:48 | |
|
Еще раз картинка
0
|
|
|
|
|
| 18.07.2016, 14:58 | |
|
FroztBal, я что-то не пойму вас.
В первом вопросе вы показали два метода, а сейчас показываете контракт, ничего общего с этими методами не имеющий. Как вас понимать?
0
|
|
|
27 / 27 / 10
Регистрация: 18.08.2014
Сообщений: 212
|
|
| 18.07.2016, 15:52 | |
|
Я столкнулся с проблемой контрактов возвращающих список. Сама технология WCF позволяет работу со списками, но при построении линка на службу вываливаются ошибки и, как следствие, линк не создается. Происходит это только в случае использования списка.
Кликните здесь для просмотра всего текста
Предупреждение 1 Предупреждение специального инструмента: Не удается импортировать wsdl:portType Подробности: Сгенерировано исключение во время запуска расширения импорта WSDL: System.ServiceModel.Description.DataCont ractSerializerMessageContractImporter Ошибка: Адресат вызова создал исключение. XPath к источнику ошибки: //wsdl:definitions[@targetNamespace='']/wsdl:portType[@name='DbLinkService'] D:\Projects\ECMS\ECMS\Service References\ServiceLink\Reference.svcmap 1 1 ECMS Предупреждение 2 Предупреждение специального инструмента: Не удается импортировать wsdl:binding Подробности: Ошибка импорта wsdl:portType, от которого зависит wsdl:binding. XPath к wsdl:portType: //wsdl:definitions[@targetNamespace='']/wsdl:portType[@name='DbLinkService'] XPath к источнику ошибки: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='CustomBinding_DbLinkService'] D:\Projects\ECMS\ECMS\Service References\ServiceLink\Reference.svcmap 1 1 ECMS Предупреждение 3 Предупреждение специального инструмента: Не удается импортировать wsdl:port Подробности: Ошибка импорта wsdl:binding, от которого зависит wsdl:port. XPath к wsdl:binding: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='CustomBinding_DbLinkService'] XPath к источнику ошибки: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:service[@name='DbLinkService']/wsdl:port[@name='CustomBinding_DbLinkService'] D:\Projects\ECMS\ECMS\Service References\ServiceLink\Reference.svcmap 1 1 ECMS Предупреждение 4 Предупреждение специального инструмента: Не найдены конечные точки, совместимые с Silverlight 5. Созданный класс клиента будет невозможно использовать, если сведения о конечных точках не будут предоставляться через конструктор. D:\Projects\ECMS\ECMS\Service References\ServiceLink\Reference.svcmap 1 1 ECMS Предупреждение 5 Предупреждение специального инструмента: Адресат вызова создал исключение. D:\Projects\ECMS\ECMS\Service References\ServiceLink\Reference.svcmap 1 1 ECMS Ошибка 6 Ошибка специального инструмента: Не удалось создать код для ссылки на службу "ServiceLink". Подробности см. в других сообщениях об ошибках и предупреждениях. D:\Projects\ECMS\ECMS\Service References\ServiceLink\Reference.svcmap 1 1 ECMS Я никак не пойму, что я делаю не так Во вложении шаблон создания службы и способ добавления в клиент
0
|
|
|
|
|
| 18.07.2016, 23:04 | |
|
0
|
|
|
27 / 27 / 10
Регистрация: 18.08.2014
Сообщений: 212
|
|
| 19.07.2016, 06:18 | |
|
VS 2013
0
|
|
|
|
||
| 19.07.2016, 10:41 | ||
|
0
|
||
|
27 / 27 / 10
Регистрация: 18.08.2014
Сообщений: 212
|
||||||
| 19.07.2016, 11:55 | ||||||
|
Скорее всего он поставился либо со Silverlight Dev Tool.
Добавлено через 1 час 13 минут Поставил 15 студию, Создал проект Silvelight Application с поддержкой RIA WCF (галочка), добавил в проект службу по шаблону WCF Service. Создал один единственный метод с (List<string>) и решил создать Service Reference .... Ошибка аналогична той, которую я указал ранее.
0
|
||||||
|
27 / 27 / 10
Регистрация: 18.08.2014
Сообщений: 212
|
|
| 19.07.2016, 13:17 | |
|
Прикрепил проект. Нужно выполнить обновление на ServiceReference1
А если удалить метод RetList, потом собрать проект и выполнить обновление то будет все ок.
0
|
|
|
|
|
| 19.07.2016, 13:40 | |
|
FroztBal, к сожалению, проект не запускается... Говорит, что нужно Silverlight Dev Tool или типа того.
0
|
|
|
27 / 27 / 10
Регистрация: 18.08.2014
Сообщений: 212
|
|
| 19.07.2016, 13:41 | |
|
При установке 15 студии их можно было включить в установку
0
|
|
|
|
||
| 19.07.2016, 13:49 | ||
|
Но в обычном сервисе такой код точно работает (WCF маршализирует коллекцию как массив), это проверено. Значит, проблема именно в работе Silverlight.
0
|
||
|
|
|
| 19.07.2016, 14:25 | |
|
FroztBal, ну в общем сделал так. Создал обычное Silverlight приложение, а потом добавил в него службу WCF. Добавил в службу метод с нужной сигнатурой, сейчас попробую добавить ссылку.
Добавлено через 11 минут Результат - создал консольку, ссылка отлично добавляется. Так что проблема в чем-то еще. Попробуйте сделать так как у меня и проверьте.
0
|
|
| 19.07.2016, 14:25 | |
|
Отправка и получение WCF Service Soap DataContext и получение таблицы клиентом через WCF Получение коллекции Rails в JS
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|