C# 二进制序列化为一个变量
C# Binary serialization into a variable
我有一段代码使用 XmlSerializer 将字符串序列化为 XML。我想将相同的字符串序列化为二进制而不是 xml,我尝试了不同的代码但 none 工作,如果可能请重写以下代码以输出序列化二进制并将其存储在变量中。
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。
如果您需要将二进制序列化输出存储在 string
中,您可以像下面那样使用 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());
我有一段代码使用 XmlSerializer 将字符串序列化为 XML。我想将相同的字符串序列化为二进制而不是 xml,我尝试了不同的代码但 none 工作,如果可能请重写以下代码以输出序列化二进制并将其存储在变量中。
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。
如果您需要将二进制序列化输出存储在 string
中,您可以像下面那样使用 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());