![]() |
|
Модераторы: gambit |
![]()
|
|
| Demokratizator |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 25.7.2006 Репутация: нет Всего: нет |
Добрый день.
Такая ситуация: есть Web сервис, написанный на C#. есть класс на подобие:
клиент (WinForms) написан на Visual Basic т.е. вызывается метод веб сервиса
и вот вылезает ошибка Method invocation failed because 'Public Function GetTemplateFile(_rtProvider As ReportTemplateProvider) As Byte()' cannot be called with these arguments: Argument matching parameter '_rtProvider' cannot convert from 'Report1TemplateProvider' to 'ReportTemplateProvider'. т.е. как я понял не может провести приведение типов. Как пофиксить это? Это сообщение отредактировал(а) Demokratizator - 28.6.2007, 11:52 |
||||
|
|||||
| teRmit |
|
|||
![]() забытый... ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 15.6.2004 Где: Санкт-Петербург Репутация: нет Всего: 9 |
У тебя в функции GetTemplateFile стоит тип параметра ReportTemplateProvider, а передаешь туда параметр типа Report1TemplateProvider.
Наверное, ты хотел сделать так:
но перепутал имена классов, единичка незаметная Это сообщение отредактировал(а) teRmit - 28.6.2007, 15:40 --------------------
Жизнь не настолько длинна, чтобы можно было долго терпеть... |
|||
|
||||
| Demokratizator |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 25.7.2006 Репутация: нет Всего: нет |
нееет =) в этом то вся и фишка. Report1TemplatePrivider - унаследован от Report1TemplatePrivider. поэтому это то правильно, вот почему то при вызове из бейсика - не хотит
|
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 1 Всего: 48 |
приведённые код какой-то уж слишком обрезанный. ReportTemplateProvider\Report1TemplateProvider по значению передаётся или по ссылке? ни Serializable, ни MarshalByRefObject\ContextBoundObject нет. сервер знает что такое Report1TemplateProvider? представь: серверу приходит soap-сообщение, где фигурирует класс Report1TemplateProvider, как минимум у сервера должны быть метаданные о нём, как максимум - сборка с реализацией.
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 6 Всего: 170 |
мне кажется, причина в том, что у базового класса есть приватные поля...
Веб-сервисы при передаче параметра веб-метода серилизуют только открытые (public) члены. Поэтому сервер и не может сделать преобразование типа. Попробуй поменять у _templatesDir "private" на "public" Что получится? -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |