Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将二进制序列化为变量_C#_Serialization_Xml Serialization - Fatal编程技术网

C# 将二进制序列化为变量

C# 将二进制序列化为变量,c#,serialization,xml-serialization,C#,Serialization,Xml Serialization,我有一段代码使用XmlSerializer将字符串序列化为XML。我想将相同的字符串序列化为二进制而不是xml,我尝试了不同的代码,但都不起作用,如果可能,请重写以下代码以向我输出序列化的二进制并将其存储在变量中 public class SerialTest { public static void Main(string[] s) { String test = "ASD"; string serializedData = string.Em

我有一段代码使用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的输出。

如果需要将二进制序列化输出存储在
字符串中,您可以使用
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());

你调查过这个吗?@GabrielCostin,是的,但它会将结果存储在一个文件中,我不能将其保存在变量中。你能更清楚地说明你的要求吗?您想要真正的二进制数据(
byte[]
)还是十六进制(
string
)?还可以指出您需要它做什么。谢谢,我怎样才能输出为十六进制而不是base64string?您可以尝试编码。Default.GetString(memoryStream.ToArray())有关输出字节数组的更多详细信息,请检查此项