c# - 将 XML 序列化为 byte[] 而不是文件

标签 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);

我尝试使用 MemoryStream:

byte[] buffer = new byte[1000];
using (TextWriter textWriter = new MemoryStream(buffer))
...

但是我得到一个错误。那我应该怎么做呢?

最佳答案

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

using (var stream = new MemoryStream(buffer))
{
    using (TextWriter textWriter = new StreamWriter(stream))
    { ... }
}

关于c# - 将 XML 序列化为 byte[] 而不是文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12308422/

相关文章:

serialization - Kotlin 序列化 : "Unresolved reference: serializer"

serialization - 通过 ASP.NET 5 DNX Core 在 Azure 表中使用自定义属性类型

c# - 如何在mvc中获取网页的特定部分?

c# - 将数据插入数据 GridView c#

c# - 以下代码是从单例创建对象的可靠方法吗?

c# - 使用 C# 和 WinForms 在自己的进程中的选项卡

c# - 修改 DataContractSerializer 的输出 xml

c# - DataContractSerializer 的预定义 XML 命名空间

java - java XML序列化向节点添加属性

c# - List<T> 的 XML 序列化 - XML 根