Serialize можно ли так ?

  • Автор темы met123
  • Дата начала
M

met123

Гость
#1
Короче у меня есть определенный клас , обьект которого я сохраняюю в файл.
Потом этот файл пересылаю клиенту посредством TCP/IP и теперь я этот файл пытаюсь десериализовать и привести к определенному класу
для этого я создал анологичный клас в клиенте и потом привожу к нему.
Но при попытке десериализовать выдаеться ошибка:

Unable to find assembly 'server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.



Какой выход?
Или может другой есть вариант
Собственно задача состоит: на клиентском приложений на сервер отсылаеться запрос, на сервере с базы данных посредством запроса производиться выборка данных, и эту выборку через TCP/IP нужно передать назад клиенту.

Можна попробовать данные сохранять в ХML файле, но это долго , я на сервере создал клас сереализуемый который состоит из DataSet,
когда данные готовые я создаю обьект данного класа запихую в DataSet данные и сохр в файл

BinaryFormatter formatter = new BinaryFormatter();
ouputfile = @"c:\proba\1.grid";
Stream potok = File.OpenWrite(ouputfile);
formatter.Serialize(potok, obg);
potok.Close();


На клиенте получаю этот файл и десериализирую его (в клиенте тоже создан анологичный клас):


BinaryFormatter formatter = new BinaryFormatter();
mydata gr = new mydata();
Stream potok = File.OpenRead(@"c:\proba\proba.grid");
gr=(mydata)formatter.Deserialize(potok);

и тут ошибка

Unable to find assembly 'server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

 
P

Pasha

Гость
#2
<!--QuoteBegin-met123+3:07:2007, 13:30 -->
<span class="vbquote">(met123 @ 3:07:2007, 13:30 )</span><!--QuoteEBegin-->Короче у меня есть определенный клас , обьект которого я сохраняюю в файл.
Потом этот файл пересылаю клиенту посредством TCP/IP и теперь я этот файл пытаюсь десериализовать и привести к определенному класу
для этого я создал анологичный клас в клиенте и потом привожу к нему.
[snapback]71164" rel="nofollow" target="_blank[/snapback]​
[/quote]
Понятия "аналогичный класс" в .net нет. При десериализации нужен тот же класс из той же сборки. Вынеси класс в отдельный class library и добавь на него референсы и в клиентском, и в серверном приложении.
 
N

NikSoft

Гость
#5
Или напиши свой сериализатор, который сериализует в xml.
 
P

Pasha

Гость
#6
<!--QuoteBegin-met123+3:07:2007, 13:30 -->
<span class="vbquote">(met123 @ 3:07:2007, 13:30 )</span><!--QuoteEBegin-->Можна попробовать данные сохранять в ХML файле, но это долго , я на сервере создал клас сереализуемый который состоит из DataSet,
когда данные готовые я создаю обьект данного класа запихую в DataSet данные и сохр в файл
[snapback]71164" rel="nofollow" target="_blank[/snapback]​
[/quote]Вырезать гланды можно было через рот, но это долго, поэтому я проталкиваю их глубже в глотку и вырезаю через задний проход.
 
M

met123

Гость
#7
значит сделал так: даный клас сделлал как делелку и подключил референсом к клиенту и серверу
Вопрос !!
Пока у меня все отлично работае, потому что тестирую я порогу на одном компе(пока еще не выделили мне отдельный порт) через внутренный айпи адрес пересылаю данные, но если скажем сервер будет нах на одной машине а клиент на другой или скажем клиент будет вообще находиться на комуникаторе тогда мне нужно иметь 2 копии дллки класа: одна подключаться референсом к серверу а другая к клиентской программе .
Так оно тоже будет работать или нет?
 
P

Pasha

Гость
#8
Для: met123
У тебя и сейчас 2 копии длл-ки, одна в папке bin сервера, вторая в папке bin клиента. И, судя по всему, работает.