web-dev-qa-db-ja.com

メモリストリームオブジェクトを文字列にシリアル化する

現在、XmlTextWriterを使用してMemoryStreamオブジェクトを文字列に変換しています。しかし、メモリストリームを文字列にシリアル化するためのより高速な方法があるかどうかはわかりません。

私はシリアル化のためにここに与えられたコードに従います- http://www.eggheadcafe.com/articles/system.xml.xmlserialization.asp

編集済み

文字列へのストリーム

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

文字列からストリーム

string content = GetFromContentDB();
byte[] byteArray = Encoding.ASCII.GetBytes(content);
MemoryStream ms = new MemoryStream(byteArray); 
byte[] outBuf = ms.GetBuffer(); //error here
12
NLV
using(MemoryStream stream = new MemoryStream()) {
   stream.Position = 0;
   var sr = new StreamReader(stream);
   string myStr = sr.ReadToEnd();
}

MemoryStream(byte []) コンストラクターを使用する場合はGetBufferを使用できません。

MSDN見積もり:

このコンストラクターは、基になるストリームを公開しません。 GetBufferはUnauthorizedAccessExceptionをスローします。

GetBufferを使用するには、これを使用する必要があります コンストラクター そしてpubliclyVisible = trueを設定します

26
Stecya

VB.netで私はこれを使用しました

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

c#で適用される場合があります

0
Esteban Perez