2011-05-28 12 views
10

Ahora estoy usando XmlTextWriter para convertir un objeto MemoryStream en una cadena. Pero no quiero saber si hay un método más rápido para serializar un flujo de memoria en la cadena.Serializar un objeto de flujo de memoria en la cadena

sigo el código dado aquí para serialización - http://www.eggheadcafe.com/articles/system.xml.xmlserialization.asp

Editado

Stream para cuerdas

ms.Position = 0; 
using (StreamReader sr = new StreamReader(ms)) 
{ 
    string content = sr.ReadToEnd(); 
    SaveInDB(ms); 
} 

cadena a Stream

string content = GetFromContentDB(); 
byte[] byteArray = Encoding.ASCII.GetBytes(content); 
MemoryStream ms = new MemoryStream(byteArray); 
byte[] outBuf = ms.GetBuffer(); //error here 
+0

duplic posible comió de [¿Cómo se obtiene una cadena de un MemoryStream?] (http://stackoverflow.com/questions/78181/how-do-you-get-a-string-from-a-memorystream) –

Respuesta

24
using(MemoryStream stream = new MemoryStream()) { 
    stream.Position = 0; 
    var sr = new StreamReader(stream); 
    string myStr = sr.ReadToEnd(); 
} 

No puede usar GetBuffer cuando utiliza MemoryStream(byte[]) constructor.

MSDN cita:

Este constructor no expone al secuencia subyacente. GetBuffer arroja UnauthorizedAccessException.

debe utilizar esta constructor y establecer publiclyVisible = true con el fin de utilizar GetBuffer

+0

Tengo miedo esto no está dando la cadena de escritura. Después de intentar convertir la cadena de nuevo a la secuencia de la memoria, aparece el mensaje de error "No se puede acceder al almacenamiento intermedio interno de MemoryStream". mientras haces memorystream.GetBuffer(). – NLV

+0

¿Puedes mostrar tu fragmento de código? – Stecya

+0

Han actualizado el código en la publicación. La secuencia de memoria original es de alrededor de 95000 bytes. Pero después de convertir la cadena de nuevo en stream obtengo solo 1900 bytes. – NLV

0

En VB.net i utilizado este

Dim TempText = System.Text.Encoding.UTF8.GetString (TempMemoryStream .ToArray())

en C# puede aplicar

Cuestiones relacionadas