2

我正在尝试将通过套接字获取的一些 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 编码一个字符串成员,我可以将属性设置为 byte[] 并且它会自动编码为 Base64,所以这就是我所做的。然后我添加了一个方法来检索这个 Base64 作为人类可读的字符串,我可以使用,希望通过序列化来回避问题。

但是,在尝试序列化 xml 字符串时出现了一个正常的错误((0x10)是有问题的字符所在的位置,但它们不会显示在这篇文章中):

XML 字符串

<?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."}

所以基本上这种方法让我得到了同样的反应,我无法理解为什么,有人可以指点我的演示代码或关于为什么会发生这种情况的信息吗?

4

0 回答 0