C#二进制序列化到一个变量

问题描述 投票:0回答:1

我有一段代码工作的是序列化字符串转换成XML与XmlSerializer的。我想要序列相同的字符串转换成二进制和不是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。

c# serialization xml-serialization
1个回答
1
投票

如果你需要二进制序列化输出存储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());
© www.soinside.com 2019 - 2024. All rights reserved.