Problemas para deserializar un stream

18/09/2003 - 21:54 por roman | Informe spam
Hola a todos:

Estoy tratando de deserializar un stream en memoria a un objeto especifico,
pero cuando se ejecuta la siguiente línea
"clsAperak = (APERAK)serializer.Deserialize(mem);" se muestra un error en
una línea determinada del archivo, el cual fue utilizado
para cargar el stream en memoria. Algunas de las pruebas que se realizaron
fue verificar que el archivo de texto con el que se cargó el stream en
memoria estuviera
correcto. A continuación se muestra el código utilizado para cargar el
stream en memoria y deserealizar el archivo.

XmlSerializer serializer;

MemoryStream mem = new MemoryStream(cadena.Length) ;

StreamWriter writer = new StreamWriter(mem, Encoding.UTF8);

writer.WriteLine( cadena );

mem.Seek(0, SeekOrigin.Begin );

try

{

serializer = new XmlSerializer(typeof(APERAK));

clsAperak = (APERAK)serializer.Deserialize(mem);

}

catch (Exception ErrorGetAPERAK)

{

throw new Exception("Ha ocurrido un error. Descripción - " +
ErrorGetAPERAK.Message);

}

finally

{

writer.Close();

}



Gracias, Román
 

Leer las respuestas

#1 Ignacio Nicolás Rodríguez
19/09/2003 - 00:54 | Informe spam
El problema es que cadena.Length devuelve el largo en CARACTERES, mientras
que el constructor de MemoryStream toma como parámetro el largo en BYTES.

Saludos.
Ignacio Nicolás Rodríguez, MCSD.Net/MCT.--

"roman" escribió en el mensaje
news:
Hola a todos:

Estoy tratando de deserializar un stream en memoria a un objeto


especifico,
pero cuando se ejecuta la siguiente línea
"clsAperak = (APERAK)serializer.Deserialize(mem);" se muestra un error en
una línea determinada del archivo, el cual fue utilizado
para cargar el stream en memoria. Algunas de las pruebas que se realizaron
fue verificar que el archivo de texto con el que se cargó el stream en
memoria estuviera
correcto. A continuación se muestra el código utilizado para cargar el
stream en memoria y deserealizar el archivo.

XmlSerializer serializer;

MemoryStream mem = new MemoryStream(cadena.Length) ;

StreamWriter writer = new StreamWriter(mem, Encoding.UTF8);

writer.WriteLine( cadena );

mem.Seek(0, SeekOrigin.Begin );

try

{

serializer = new XmlSerializer(typeof(APERAK));

clsAperak = (APERAK)serializer.Deserialize(mem);

}

catch (Exception ErrorGetAPERAK)

{

throw new Exception("Ha ocurrido un error. Descripción - " +
ErrorGetAPERAK.Message);

}

finally

{

writer.Close();

}



Gracias, Román


Preguntas similares