将XML序列化为byte []而不是file

isp*_*iro 1 c# serialization xml-serialization

这必须非常简单,但我无法通过搜索找到它.

我有以下代码将对象序列化为文件并返回.但现在我想序列化为一个byte []并返回.

XmlSerializer serializer = new XmlSerializer(typeof(Class1));
using (TextWriter textWriter = new StreamWriter(path))
    serializer.Serialize(textWriter, class1);
using (TextReader textReader = new StreamReader(path))
    class1b = (Class1)serializer.Deserialize(textReader);
Run Code Online (Sandbox Code Playgroud)

我尝试使用MemoryStream:

byte[] buffer = new byte[1000];
using (TextWriter textWriter = new MemoryStream(buffer))
...
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误.那我该怎么办呢?

Aus*_*nen 7

您应该将流发送到StreamWriter,而不是尝试将Stream分配给TextWriter.

using (var stream = new MemoryStream(buffer))
{
    using (TextWriter textWriter = new StreamWriter(stream))
    { ... }
}
Run Code Online (Sandbox Code Playgroud)