deserialize c# xml-serialization memorystream

deserialize - c# xmlserializer



Error de secuencia no legible (2)

Cuando este bloque de código se complete, también se eliminará el MemoryStream adjunto.

using (StreamWriter sw = new StreamWriter(ms)) { foreach (Conflict ct in Conflicts) xmlSerializer.Serialize(sw, ct); sw.Flush(); //Site tip ms.Position = 0; //Site tip }

Elimine la declaración de uso y elimine la secuencia manualmente una vez que haya terminado con ella

StreamWriter sw = new StreamWriter(ms); foreach (Conflict ct in Conflicts) xmlSerializer.Serialize(sw, ct); sw.Flush(); //Site tip ms.Position = 0; //Site tip // other code that uses MemoryStream here... sw.Dispose();

Recibo el mensaje "El flujo no se pudo leer" en la declaración:

using (StreamReader sr = new StreamReader(ms))

He intentado los consejos publicados aquí sin éxito. Gracias por la ayuda.

Este es mi código:

XmlSerializer xmlSerializer = new XmlSerializer(typeof(Conflict)); //Serialize Conflicts array to memorystream as XML using (MemoryStream ms = new MemoryStream()) { using (StreamWriter sw = new StreamWriter(ms)) { foreach (Conflict ct in Conflicts) xmlSerializer.Serialize(sw, ct); sw.Flush(); //Site tip ms.Position = 0; //Site tip } //Retrieve memory stream to string using (StreamReader sr = new StreamReader(ms)) { string conflictXml = String.Format(CultureInfo.InvariantCulture, "{0}</NewDataSet>",


Intente esto en su lugar (suponiendo que los conflictos sean de tipo List<Conflict> ):

XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<Conflict>)); StringWriter sw = new StringWriter(); xmlSerializer.Serialize(sw, Conflicts); string conflictXml = sw.GetStringBuilder().ToString();