序列化字节数组与 XML 文件

2023-12-09

我大量使用字节数组通过网络来回传输对象、原始数据。我采用了 java 的方法,通过让类型实现 ISerialized,它包含两个方法(作为接口的一部分):ReadObjectData 和 WriteObjectData。任何使用此接口的类都会将日期写入字节数组。类似的事情

  class SerializationType:ISerializable
    {
       void ReadObjectData (/*Type that manages the write/reads into the byte array*/){}
       void WriteObjectData(/*Type that manages the write/reads into the byte array*/){}  
    }

所有对象的写入完成后,我发送一个网络数组。


这实际上是一个双重问题。这是通过网络发送数据以实现最高效率(在速度、大小方面)的正确方法吗?

您会使用这种方法将对象写入文件,而不是使用典型的 xml 序列化吗?

Edit #1

乔尔·科霍恩提到了BinaryFormatter。我从来没有使用过这个类。除了我目前在 msdn 上看到的内容之外,您能否详细说明,提供好的示例、参考资料、建议、当前实践?


这应该没问题,但你正在做的工作已经为你完成了。看着那(这System.Runtime.Serialization.Formatters.Binary.BinaryFormatter class.

您无需为每个特定类型实现自己的 Read/WriteOjbectData() 方法,只需使用此类即可处理大多数任何对象。它基本上获取几乎所有 .Net 对象的内存表示的精确副本,并将其写入流或从流中读取:

BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(outputStream, objectToSerialize);

objectToDeserialize = bf.Deserialize(inputStream) as DeserializedType;

确保您仔细阅读了链接的文档:unicode 字符串可能存在问题,并且精确的内存表示并不总是合适的(例如,打开套接字之类的东西)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

序列化字节数组与 XML 文件 的相关文章

随机推荐

  • Flask 在 GAE 上重定向

    您好 我正在 Google 应用引擎上使用 Flask http flask pocoo org 我有以下代码 app route edit html methods GET POST def create if request metho
  • 在 Swift 中处理 XML 元素的属性

    我想阅读url使用 NSXMLParser 来自此元素的属性
  • 如何从 Android 应用程序读取内存数据

    我想从应用程序中获取一些数字数据 但它们不会存储为像 db 这样的文件 我知道有一些内存黑客应用程序可以改变游戏值 尽管我不知道它们是如何工作的 我正在寻找类似的功能 但不需要更改任何内容 我试图编写的应用程序只是从特定应用程序读取一些数据
  • 在 PHP 中使用 array_chunk 移动元素

    我有一个基本数组 其中使用 array chunk 将其分为 3 个元素 array array a b c d e f g h chunk array chunk array 3 结果如下 a b c d e f g h Las chun
  • 如果未实例化成员模板,是否要评估 static_asserts?

    我想我明白了static assert工作了 但是当我在 g 编译器上尝试这个时 我开始想知道 include
  • 错误:关系不存在

    所以问题就在这里 我正在用 java 抓取一些数据 最终我将 java 放入 postgres 数据库中 当我运行 Java 程序时 我收到错误 ERROR 关系 表名 不存在 但是当我亲自在 PGAdmin III 中编写相同的查询时 它
  • 使用 svd 求解欠定 scipy.sparse 矩阵

    Problem 我有一组方程 其中变量用小写变量表示 常量用大写变量表示 A a b B c d C a b c d e 我在具有两列的 pandas DataFrame 中提供了有关这些方程结构的信息 常数 and 变量 E g df p
  • 如何根据 R ggplot2 中的 y 轴值重新排序 x 轴

    我正在尝试根据 y 轴的平均值对错误图上的 x 轴重新排序 我不介意是升序还是降序 我已经应用了基于的解决方案这个帖子 但是由于某种原因 它似乎忽略了reorder命令 你知道这里发生了什么吗 Import data df lt struc
  • Oracle UNION 不同列

    我有两张桌子 看起来像 TABLE 1 COL A int COL B float COL C float TABLE 2 COL A int COL B float 我的查询使用 UNION 将这些表的结果放在一起 但在 TABLE 2
  • 为什么我的 Perl 程序无法在 Windows 上创建超过 4 GB 的文件?

    为什么输出到文件时文件大小上限为 4 GB 使用打印文件 我希望通过流输出 应该可以生成任意大小的文件 Update ijw and 查斯 欧文斯是正确的 我以为F 驱动器是NTFS格式的 但实际上它使用的是FAT32文件系统 我 在另一个
  • 构建相关变量

    我有一个具有给定分布的变量 在下面的示例中为正态分布 set seed 32 var1 rnorm 100 mean 0 sd 1 我想创建一个与 var1 相关的变量 var2 其线性相关系数 大致或精确 等于 Corr var1 和 v
  • 如何在 Inno Setup 中根据操作系统版本选择要复制的文件?

    我已经使用 Inno setup 构建了一个安装程序 最近发现有些应用程序在Windows XP下无法运行 这些应用程序在 Windows 7 及更高版本上运行良好 我需要根据用户安装的 Windows 版本复制文件并相应地创建程序菜单快捷
  • 使用react-native检查手机上是否安装了Metamask应用程序

    我正在使用构建一个应用程序react native 我正在使用 React Native 的Linking用于在手机上安装的 Metamask 应用程序中打开我的网站链接的 API 这Linking opneURl url 如果设备上安装了
  • Node.js 无法连接到 MongoDB

    我对 Node js 和 MongoDB 都很陌生 我正在遵循本指南 http howtonode org express mongodb使用 Node js 和 MongoDB 创建一个简单的博客 当节点尝试连接到 MongoDB 时 它
  • SQL 中 XML 分解的替代方案

    我尝试使用 XQuery 将 XML 分解到临时表中 nodes如下 但是 我遇到了性能问题 粉碎需要花费很多时间 请给我一个关于替代方案的想法 我的要求是将批量记录传递给存储过程并解析这些记录并根据记录值执行一些操作 CREATE TAB
  • Protractor:使用 browser 或 browser.driver 方法?

    使用时protractor 全局变量browser似乎具有以下所有功能browser driver 我特意问这个是因为我不确定是否使用browser wait or browser driver wait因为它们看起来都是相同的方法 而且我
  • Json 问号(“??????”)而不是希伯来字符

    我正在从我的数据库获取包含希伯来语单词的数据 然后我从以下位置获取这些数据ResultSet放入一个字符串 然后放入一个JSONObject 这是代码 response setContentType application json Str
  • 了解 awk 分隔符 - 在基于正则表达式的字段分隔符中转义

    我有以下 shell 命令 awk F print 2 这个命令是做什么的 使用分隔符分割成字段 sometext E g echo this line passed to awk awk F print 2 line Editor s n
  • 使用 R 和 Lattice 的 XYZ 图中高程数据的颜色渐变

    我有一堆 XYZ 数据 其中 X 和 Y 是坐标 Z 应该是高程 LiDAR 点 我正在尝试使用基于 Z 值的梯度来绘制该点云 这是我到目前为止所拥有的 Read the CSV file with the LiDAR point clou
  • 序列化字节数组与 XML 文件

    我大量使用字节数组通过网络来回传输对象 原始数据 我采用了 java 的方法 通过让类型实现 ISerialized 它包含两个方法 作为接口的一部分 ReadObjectData 和 WriteObjectData 任何使用此接口的类都会