c# - 包含字节数组的 xml 问题

标签 c# xml-serialization

你好,我使用一种消息解析形式,其中我将字段写入缓冲流,然后提取该流的字节数组重复

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/

相关文章:

javascript - 传递给initialPreview属性的<img>标签数组

c# - 带有属性的自定义 xml 序列化

c# - XmlSerializer 枚举反序列化因(不存在)空格而失败

c# - 使用 XML 序列化将属性放入不同的 XML 命名空间

java - XStream 在 Android 上抛出异常 "no-args constructor"

c# - XML反序列化成不同的类?

c# - 当前 .Net SDK 不支持以 .Net Core 2.2 为目标 以 .Net Core 2.1 或更低版本为目标

c# - .net activex 在框架 4.0 中不工作

c# - 在 Parallel.For 完成作业后引发事件

c# - 将 C# DataTable 转储到文件