c# - C#二进制序列化成变量
问题描述
我有一段代码使用 XmlSerializer 将字符串序列化为 XML。我想将相同的字符串序列化为二进制而不是 xml,我尝试了不同的代码但没有工作,如果可能,请重写以下代码以输出我序列化的二进制并将其存储在变量中。
public class SerialTest
{
public static void Main(string[] s)
{
String test = "ASD";
string serializedData = string.Empty;
XmlSerializer serializer = new XmlSerializer(test.GetType());
using (StringWriter sw = new StringWriter())
{
serializer.Serialize(sw, test);
serializedData = sw.ToString();
Console.WriteLine(serializedData);
Console.ReadLine();
}
}
}
我真正想要的是有一个序列化对象的代码,并将序列化的二进制文件作为变量而不是 XML 的输出提供给我。
解决方案
如果您需要将二进制序列化输出存储在 astring
中,您可以使用ToBase64String
如下所示。
String test = "ASD";
string serializedData = string.Empty;
MemoryStream memoryStream = new MemoryStream();
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(memoryStream, test);
memoryStream.Flush();
memoryStream.Position = 0;
serializedData = Convert.ToBase64String(memoryStream.ToArray());
推荐阅读
- modal-dialog - 验证失败后摇 wx.Dialog
- c# - 计算精灵根据需要行进的距离和行进速度改变大小的速度
- bash - bash 变量作为命令:在执行前回显命令并将结果保存到变量中
- sql-server - SQL Server:文件作为二进制文本提取
- c++ - std::invoke 不喜欢可变参数模板成员函数?
- python - python中的自动GPU卸载
- c++ - 在 C++ 中对对象数组进行排序
- javascript - 未捕获的 ReferenceError:函数未定义 1 个函数的错误
- python - Rust 循环性能与 python 相同
- arrays - AutoHotkey:我如何设置一个数组到使用计数器的字符串关联?