如何在没有 XML 元标记的情况下序列化二进制数据



我想混淆二进制数组中的一些二进制或文本数据byte[],我能够完成转换为我想要的字符串,但XmlSerializer输出包含额外的信息。 是否有不同的序列化程序可用于在不附加 XML 标记的情况下转换我的数据? 如果我稍后需要反序列化它,我将包含必要的标记。

byte[] baTest = new byte[256];
        for (int i = 0; i < 256; i++)
            baTest[i] = (byte) (i & 0xff);
        string MyTestString = ReadableXMLBinary(baTest);
        MessageBox.Show("My String is:n" + MyTestString);
static public string ReadableXMLBinary(byte[] baIn)
        {
            StringWriter s = new StringWriter();
            XmlSerializer xser = new XmlSerializer(typeof( byte[]));
            xser.Serialize(s, baIn);
            return s.ToString();
        }

哪些输出:

<?xml version="1.0" encoding="utf-16"?><base64Binary>AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==</base64Binary>"

基本上,我想要<base64Binary>标签之间的所有内容。我知道我可以毫不费力地删除里面的文字,但我认为可能会有人建议一个干净的解决方案。

看起来你根本不想要XML?

如果是这种情况,请使用: string s = Convert.ToBase64String(baIn);

并转换回来: byte[] baOut = Convert.FromBase64String(s);

最新更新