Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Служба и приложение используют одну сборку и класс 
:(
    Опции темы
NikeDeForest
Дата 2.9.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 15.9.2007

Репутация: 1
Всего: 2



Есть абстарктный класс, который вынесен в отдельную сборку.
Вэб-служба имеет ссылку на эту сборку и в ряде методов использует этот тип, например возврат в методе.
Оснонвое приложение тоже имеет ссылку на сборку с абстрактным классом и использует этотт тип. И тут происходит проблема.
Когда я из приложения вызываю метод службы, который возвращает объект типа того абстарктного класса, то выскакивает сообщение, что происходит неявное переопределение типа. Суть по ходу в том, что среда считает, что класс в службе и класс в основном приложении - это два разных класса. 
Вопрос, почему и как это побороть?
Пробовал полазить в настрйоках вэб-сслыки, сообенно приглянулся мне параметр 
"Повторно использовать типы в сборках, на которые есть ссылки" Не помогло
Пробовал подключать не как ссылку на выэ-службу, а именно вэб-службу, все равно не помогло.
Пробовал альясы, все арвно выскакивает предупреждение о том, что неоднозначное имя типа. Можно  в этом случае писать полные пространства имен, но мне кажется при исполнении будет экзепшн.
--------------------
Еще один вопрос ...
PM   Вверх
PashaPash
Дата 2.9.2009, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



NikeDeForest, для web reference решается написанием своего SchemaImporterExtension (http://www.microsoft.com/belux/msdn/nl/community/columns/jdruyts/wsproxy.mspx)
Если нет серьезных причин использовать именно старые asmx web services, то проще перейти на WCF, в нем такой проблемы нет.


--------------------
PM MAIL WWW   Вверх
NikeDeForest
Дата 4.9.2009, 07:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 15.9.2007

Репутация: 1
Всего: 2



, еще неделю назад я бы ответил, что Моно препячтствует. Но на этой неделе было принято решение соскочить с него, так что с удовольствие м воспользуюсь советом по поволу WCF. Спасибо.
--------------------
Еще один вопрос ...
PM   Вверх
NikeDeForest
Дата 10.9.2009, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 15.9.2007

Репутация: 1
Всего: 2



Вы знаете, в WCF со временем приходишь к тому же.
Есть сборка, в которой определн класс, он является контрактом данных для службы, т.е. служба ссылается на эту сборку.
Есть основное приложение, которое ссылается на службу и использует этот тип
Пространство имен для этого типа будет <Пространство для приложения>.<ПРостранство для службы>
Потом я хочу передать этот тип контролу, который опрделен опять же в отдельной сборке. И тут эта проблема всплывает.
Этот контрол не знает об этом типе и я попробовал:
- добавить ссылку на службу. Результат, класс имеет простарнство имен <Пространство имен контродла>.<Пространство имен службы> и соответсвенно выскакивает ошибка о невозможности преобразования  <Пространство имен контродла>.<Пространство имен службы>.<Тип> к <Пространство для приложения>.<ПРостранство для службы>.<Тип>
-добавить пряммую ссылк на сборку, тоже безрезультатно, но тут понятно все.

Остается вариант добавить перекрестную ссылку на основное приложение, но что-то даже не хочется об этом думать
--------------------
Еще один вопрос ...
PM   Вверх
kobra
Дата 10.9.2009, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



иногда помогает сериализация десериализация.
PM MAIL   Вверх
NikeDeForest
Дата 10.9.2009, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 15.9.2007

Репутация: 1
Всего: 2



Не совсем понял, немного подробнее бы. ПРосто вроде серилизация/десериализация итак происходит классов, объявленных контрактными, или нет?
--------------------
Еще один вопрос ...
PM   Вверх
PashaPash
Дата 10.9.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



NikeDeForest, должно хватить ссылки (reference) из "отдельной сборки контрола" на "отдельную сборку с передаваемым типом".


--------------------
PM MAIL WWW   Вверх
NikeDeForest
Дата 11.9.2009, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 15.9.2007

Репутация: 1
Всего: 2



PashaPash, не получается так. Получается несовпадение типов - не совпадает тип передаваемый основным приложением(а основное приложение получает от службы) и типа, на который будет ссылаться контрол.
--------------------
Еще один вопрос ...
PM   Вверх
PashaPash
Дата 11.9.2009, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



NikeDeForest, основное приложение, служба и контрол должны использовать один и тот же тип в "отдельной сборке с передаваемым типом".


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.