将字符串转换为Base64以在Xml.Serializer中使用

时间:2013-11-03 05:02:45

标签: c# xml-serialization base64

我正在尝试将一些XML数据序列化,我将通过套接字转换为一些可用的对象,起初我遇到了接收0x10字符的问题,这些字符在1.0中明显无效,因为.NET不支持1.1我是指示我需要将我的特定字符串编码为Base64。

所以这就是我用我的类完成的XML字符串

    [XmlRoot]
public class message
{
    [XmlElement]
    public string type { get; set; }
    [XmlElement]
    public string user { get; set; }
    [XmlElement]
    public string cmd { get; set; }
    [XmlElement]
    public string host { get; set; }
    [XmlElement]
    public byte[] msg { get; set; }

    public string GetCommand()
    {
        return System.Text.Encoding.UTF8.GetString(msg);
    }
}

我在这里读到:XmlSerializer , base64 encode a String member我可以将属性设置为byte []并且它将自动编码为Base64,所以这就是我所做的。然后我添加了一个方法来检索这个Base64作为一个人类可读的字符串,我可以使用,希望通过序列化来解决问题。

但是,在尝试序列化xml字符串时,我得到了理智的错误((0x10)是有问题的字符,但它们不会显示在此帖子上):

XML STRING

<?xml version=\"1.0\"?><message><type>SERVER</type><user>TestDeleteOrKillMe</user>
<cmd>PRIVATE_MSG</cmd><host>65.255.81.81</host><msg>57(0x10)(0x10)</msg></message>

收到错误

 {"'', hexadecimal value 0x10, is an invalid character. Line 1, position 135."}

所以基本上这种方法给我带来了相同的反应,我无法理解为什么,有人可以指点我一个演示代码或有关为什么会发生这种情况的信息吗?

0 个答案:

没有答案