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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несовместимость собственных классов, через Web Service 
:(
    Опции темы
azz
  Дата 27.3.2007, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 12.9.2005
Где: Munchen (Deutschl and)

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



Скажем у меня есть класс LetterInfo - Сереалезуемый только за счет <Serializable()> в начале. Он находится в нэймспейс olexiy.shared, и используется как пораметр для WebMetod.
Но почемуто когда я пытаюсь вызвать метод из клиента то получаю несовместимость типов olexiy.LetterInfo и olexiy.LocalPostServer.LetterInfo. Почему и что мне делать???
PM MAIL   Вверх
ivashkanet
Дата 27.3.2007, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



azz, сериализация бинарная?
Тогда недостаточно,  чтобы совпадала сигнатура классов, нужно чтобы это был один и тот же класс из той же самой сборки

PM MAIL WWW ICQ   Вверх
Naum
Дата 27.3.2007, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 8
Всего: 15



ivashkanet, что значит "бинарная"? А какие еще могут быть?


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
ivashkanet
Дата 27.3.2007, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Naum, XML  smile 
XML съест все что угодно, лишь бы поля принимающего класса соответствовали и, возможно, имя класса.
Она не пишет никакие данные о классе и сборке.

Вот пример сериализации класса Settings
Код

<?xml version="1.0" encoding="utf-8"?>
<Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ConnectionString>Data Source=localhost;Persist Security Info=True;User ID=****;Password=*****;Unicode=True</ConnectionString>
  <UpdateTimerInterval>120</UpdateTimerInterval>
  <DefaultWorkCentreID>***</DefaultWorkCentreID>
</Settings>


Как видно никаких данных кроме названия класса, и сериализованных данных нет
PM MAIL WWW ICQ   Вверх
azz
Дата 27.3.2007, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 12.9.2005
Где: Munchen (Deutschl and)

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



Насколько я знаю в случае с WS сереализация всегда в XML. Класс один и тот же. У меня папка из 3-х проектов: клиент, сервер и общая, где лежат файлы которые должны иснользаватся обоими. С Enum например проблем нет
PM MAIL   Вверх
ivashkanet
Дата 27.3.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(azz @  27.3.2007,  12:42 Найти цитируемый пост)
Класс один и тот же.

А как тогда неймспейсы стали разными?

Цитата(azz @  27.3.2007,  12:19 Найти цитируемый пост)
получаю несовместимость типов

Ошибку в студию
PM MAIL WWW ICQ   Вверх
azz
Дата 27.3.2007, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 12.9.2005
Где: Munchen (Deutschl and)

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



Цитата

    
Цитата(azz @  27.3.2007,  12:42 Найти цитируемый пост)
Класс один и тот же.

А как тогда неймспейсы стали разными?

А вот это и является собственно моим вопросом.  smile 

Ошибка : (не неметском языке)
Der Wert vom Typ "olexiy.Shared.LetterInfo" kann nicht zu "olexiy.EMPost.LocalPostServer.LetterInfo" konvertiert werden
PM MAIL   Вверх
ivashkanet
Дата 27.3.2007, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(azz @  27.3.2007,  13:01 Найти цитируемый пост)
Der Wert vom Typ "olexiy.Shared.LetterInfo" kann nicht zu "olexiy.EMPost.LocalPostServer.LetterInfo" konvertiert werden 

Мне б на китайском...  smile 
Цитата(azz @  27.3.2007,  13:01 Найти цитируемый пост)
А вот это и является собственно моим вопросом.

Какая религия мешает использовать один и тот же класс в том же самом неймспейсе? 

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


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 12.9.2005
Где: Munchen (Deutschl and)

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



Да блин в том то и дело!!!!!

Вот WS:

Imports  olexiy.shared

.....
<WebMetod()>_
Public Sub PostLetter(ByVal info as LetterInfo)

....
End Sub

Вот клиент

private mPostService as LocalPostService.Service

public sub SendLetter(ByVal info as LetterInfo)
 mPostService.PostLetter(info)
end sub

как видеш один и тот клже класс
PM MAIL   Вверх
ivashkanet
Дата 27.3.2007, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(azz @  27.3.2007,  14:07 Найти цитируемый пост)
как видеш один и тот клже класс 

НЕ ВИЖУ  smile 
С точки зрения управляющей среды это разные классы. Ну и что, что ты знаешь, что это одно и то же. Ну и что, что ты просто скопипастил код одного в другой.
Для машины они разные!!!!
Цитата(azz @  27.3.2007,  13:01 Найти цитируемый пост)
"olexiy.Shared.LetterInfo" ....  "olexiy.EMPost.LocalPostServer.LetterInfo"



Создавай dll, ложи в нее общие классы и используй их на клиенте и на сервере.

Если планируешь менять классы, то лучше выдели необходимый интерфейс и реализуй его в обоих классах
PM MAIL WWW ICQ   Вверх
azz
Дата 27.3.2007, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 12.9.2005
Где: Munchen (Deutschl and)

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



Блииииииин!!!!!да я так и сделал!!!!!!! Ти издеваешса или хе понимаеш????? У мена есть толко один клвсс. а WS ego naruju kak drugoj vidaet. Sam poprobuj
PM MAIL   Вверх
arilou
Дата 27.3.2007, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(azz @  27.3.2007,  15:58 Найти цитируемый пост)
Блииииииин!!!!!да я так и сделал!!!!!!! Ти издеваешса или хе понимаеш????? У мена есть толко один клвсс. а WS ego naruju kak drugoj vidaet. Sam poprobuj 

Это потому что из клиента ты общаешься не с самим классом, а с его прокси, который создается автоматически при добавлении web reference в проект.

По идее, когда ты добавляешь эту ссылку, все необходимые тебе для работы классы автоматом генерятся, и ставить ссылку на olexiy.shared не надо.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
azz
Дата 27.3.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 12.9.2005
Где: Munchen (Deutschl and)

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



то есть вариант - использовать в клиенте только прокси?? 

PM MAIL   Вверх
ivashkanet
Дата 27.3.2007, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(azz @  27.3.2007,  14:58 Найти цитируемый пост)
Блииииииин!!!!!да я так и сделал!!!!!!! Ти издеваешса или хе понимаеш????? У мена есть толко один клвсс. а WS ego naruju kak drugoj vidaet. Sam poprobuj 

Я конечно дико извиняюсь, но как я мог понять, что ты так и делаешь????? Из твоего куска кода не понятно что это один объект.
Из ошибки видно, что это разные объекты!!!!!
А это потому, что ты один из классов в ошибке твой, а второй --- прокси (я это не знал, но arilou).
Ты мог сказать, что не создавал "olexiy.EMPost.LocalPostServer.LetterInfo"?

P.S. Каждую толику информации из тебя нужно вытягивать клещами.

PM MAIL WWW ICQ   Вверх
arilou
Дата 27.3.2007, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(azz @  27.3.2007,  16:22 Найти цитируемый пост)
то есть вариант - использовать в клиенте только прокси?? 

Да.


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

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


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

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


 




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


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

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