你好,我使用一种消息解析形式,其中我将字段写入缓冲流,然后提取该流的字节数组重复
MyMessage _message = new MyMessage("me","you",MessageType.peer_message,4252422) ;
// in the constructor String sender,String receiver,MessageType(enumaraition) m_type,Int32 id
byte [] buffer = myEncoder.encode(message) ;
现在,当我将它传递给 myDecoder 时,它会在同一时间对其进行解码,而且效果很好! 我怎么做不是问题
我的问题是,在某些通信错误的情况下,我需要存储 byte[] 数组(缓冲区)以供进一步使用,我正在尝试在标签下的 xmlDocumant 中执行此操作 在内部文本中,我想保存该字节数组的位置
我试过了 -->
utf8Encoding.Ascii.getString(buffer)
保存了某种重复
但它改变了不是字符串的字段的值...当我使用
utf8Encoding.Ascii.getBytes(packet_node.innerText) ;
1)问题是如何将字节数组保存到 XML 节点 2)我也试过在每个标签中一个一个地写字段
<Packet>
<sender>me</sender>
<receiver>him</receiver>
<MessageType> ..?? how would i represent a byte as a string ? </MessageType>
<Id> 4252353523 </Id> here i have no problem but i still would have to always prase the value back and forth in other uses from int to string ..
</Packet>
3) 所以我的结论是将字节数组序列化为 xmldocument .. 只是我不希望它成为一个文档,而只是现有文档中的一个节点
最佳答案
将其编码为 base-64 字符串。记得在读回时对其进行解码。
byte[] bytes = ...;
string encoded = Convert.ToBase64String(bytes);
byte[] decoded = Convert.FromBase64String(encoded);
关于c# - 包含字节数组的 xml 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4801351/