現在、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
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
を設定します
VB.netで私はこれを使用しました
Dim TempText = System.Text.Encoding.UTF8.GetString(TempMemoryStream.ToArray())
c#で適用される場合があります