[C#.NET2005] - Serialize in Serialize probleem

Pagina: 1
Acties:

  • Facer
  • Registratie: Januari 2002
  • Niet online

Facer

Ken net.....

Topicstarter
Momenteel bezig met een programma die een object van een client naar een server stuurt. Hierbij wordt gebruik gemaakt van een network stream en serialize en desialize functies.

Serialize en Desialize
Deze functie's zijn uitvoerig getest en werken zonder problemen.

NetworkStream
Er wordt gebruik gemaakt van een NetworkStream. Deze communicatie werkt perfect en is niks op aan te merken.

Probleem
Voor data te versturen over de NetworkStream wordt gebruikt van Serialize om ervoor te zorgen dat er gebruik kan worden gemaakt van een Buffer bij het sturen. Direct de dataset sturen zorgt ervoor dat het programma vast gaat staan bij het inlezen van de stream in de dataset.

In de dataset staan gegevens zoals wie de zender is maar ook de Fingerafdruk zelf.
Voorbeeld van een gedeelte als men het commando: ds.getXML() uitvoert:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" standalone="yes"?>
<flexaccess>
  <header>
    <messagetype>RequestEntryOpen</messagetype>
    <node>123</node>
  </header>
  <data>
    <data_row>0</data_row>
  </data>
  <data>
    <data_row>1</data_row>
  </data>
  <data>
    <data_row>0</data_row>
  </data>
  <data>
    <data_row>0</data_row>
  </data>
  <data>
    <data_row>0</data_row>
  </data>
  <data>
    <data_row>255</data_row>
  </data>
  <data>
    <data_row>255</data_row>
  </data>


Het uitlezen van bijvoorbeeld "messagetype" gaat zonder problemen. De data_row wordt uitgelezen en verzameld in een byte[]. Deze wordt dan naar de Deserialize gestuurd om de byte[] om te zetten naar het juiste object.

De fout die bij de Deserialize dan optreed is:
code:
1
2
Fout bij bestand: mscorlib
De binaire stroom 0 bevat geen geldige BinaryHeader. Mogelijke oorzaken zijn een ongeldige stroom of objectversiewijziging tussen serialisatie en deserialisatie.


Zou deze foutmelding kunnen komen door de 2x Serialize? En is er een work-around voor eventueel?

Verwijderd

Zie:
http://forums.microsoft.c...px?PostID=731232&SiteID=1
http://www.thescripts.com/forum/thread226743.html

Daar staan een aantal oplossingen vermeldt, maar blijkbaar is het een vaker voorkomend probleem. Dus dit zul je denk ik moeten oplossen dmv trial and error.

[ Voor 11% gewijzigd door Verwijderd op 30-12-2006 18:31 ]