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

Тема в разделе ".NET", создана пользователем met123, 3 июл 2007.

  1. met123

    met123 Гость

    Короче у меня есть определенный клас , обьект которого я сохраняюю в файл.
    Потом этот файл пересылаю клиенту посредством 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'.

     
  2. Pasha

    Pasha Гость

    <!--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 и добавь на него референсы и в клиентском, и в серверном приложении.
     
  3. mms

    mms Гость

    Либо напиши свой сериализатор ;)
     
  4. Pasha

    Pasha Гость

    Или сериализуй в xml.
     
  5. NikSoft

    NikSoft Гость

    Или напиши свой сериализатор, который сериализует в xml.
     
  6. Pasha

    Pasha Гость

    <!--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]Вырезать гланды можно было через рот, но это долго, поэтому я проталкиваю их глубже в глотку и вырезаю через задний проход.
     
  7. met123

    met123 Гость

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

    Pasha Гость

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

    met123 Гость

    Для: pasha
    мени сенкс очень помог
     
Загрузка...

Поделиться этой страницей