自定义二进制文件的惯用 C# 反序列化?

2024-01-05

问候,

执行二进制自定义格式的序列化/反序列化的最惯用方法是什么?例如,如何读取具有一组以字节为单位指定的标头(例如 4, 4, 16, 4, 8, 8, 4, 16)的文件,没有填充,使用混合整数/byte[] types?

换句话说,在指定结构时,如何实现与 C 中相同级别的控制,而不必借助流上的读/写字节序列?

Thanks.


这是一个article http://dooba.net/2009/07/02/c-sharp-and-serializing-byte-arrays/它说明了实现此目的的一种方法。但如果你想要理想的 .NET 那么BinaryReader http://msdn.microsoft.com/en-us/library/system.io.binaryreader.aspx是要走的路。如果格式没有强加并且您可以控制它,您也可以使用二进制格式化程序 http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.binary.binaryformatter.aspx但它产生的东西是不可互操作的。

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

自定义二进制文件的惯用 C# 反序列化? 的相关文章

  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var

随机推荐

  • 如何从asp.net aspx页面获取当前页面源

    您好 我正在尝试使用 asp net 应用程序获取当前页面源 我找到了一段将 html 转换为 pdf 的代码 但为了将我的页面转换为 pdf 我需要获取该页面的 html 代码 我怎样才能将它们作为字符串获取 我的简单代码是这样的 str
  • 如何绘制复杂的多边形?

    我正在从 GIS 数据库读取数据并使用 mpl toolkits basemap 和 matplotlib 创建地图 一些数据创建复杂的多边形 由外环和内环定义 但是 我无法找到如何创建带孔的多边形 这对于 matplotlib 来说是可能
  • Android:我丢失了 Android 密钥存储,我该怎么办? [复制]

    这个问题在这里已经有答案了 基于我的 android 密钥库 我创建了一些应用程序 现在 我想更新我的一个程序 但我丢失了我的密钥库 我可以生成另一个并更新我的应用程序吗 Thanks 您可以创建一个新的密钥库 但 Android Mark
  • 如何自定义 ckeditor 工具栏

    我正在使用ckeditor 想要自定义工具栏和文本输入区域 因为两个句子之间的间隙很大 我无法找到应该进行更改的toolbar js 或config js 我如何自定义以上两者 索纳尔的答案本身并没有错 但是不涉及CKEDITOR FCK编
  • 使用枚举作为 id

    使用JPA 我们可以定义一个枚举作为实体的id吗 我尝试过以下方法 public enum AssetType Entity IdClass AssetType class public class Adkeys private Asset
  • 如何验证一组单选按钮?

    我有一个在线调查 我正在使用 jquery 验证 因此每个问题有 4 个选项 其中每个选项都是一个单选按钮 当我构建 jquery 验证规则时 我应该如何引用它们 每个问题选项都有一个 ID 和名称 以下是我到目前为止正在做的事情 但它不起
  • 数据框未在 Pycharm 中显示

    我正在使用 PyCharm 2016 2 1 当我尝试通过调试器中新添加的功能 View as DataFrame 查看 Pandas 数据帧时 这对于小型 例如 4x4 DataFrame 来说按预期工作 然而 当我尝试查看约 10 00
  • 寻找类似于 Accordion 的 JQuery 插件,但允许同时打开多个部分 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我希望有一个类似于 JQUERY Accordion 插件提供的 UI 元素 但允许用户同时打开多个部分
  • Foldl 和 Foldr 如何工作(以示例为例)?

    好吧 我是计划 球拍 lisp 的新手 我正在练习创建自己的函数 语法和递归 所以我想制作自己的函数 语法和递归foldl and foldr完全执行预定义版本功能的函数 我无法做到这一点 因为我只是不明白这些功能是如何工作的 我在这里看到
  • 在 IIS 7 中使用 myfakesite.com 而不是 localhost

    我按照以下步骤操作 我所做的是编辑这个文件 C Windows System32 drivers etc hosts 我添加了一行 127 0 0 1 myfakesite com 然后我进入 Facebook 编辑应用程序页面 特别是 网
  • xslt 将所有节点复制到变量

    如何将包含一组节点的另一个变量的副本分配给变量 这是我的代码
  • 我可以避免向未登录的客户端提供所有js吗?

    在构建 Meteor 应用程序时 是否可以在用户通过身份验证之前不向客户端提供 加载所有生成的 JavaScript 如果没有人能看到我的模板 模型 助手等 我会更高兴 澄清 这并不是要把东西放在 server 下 或者用 pub sub
  • 限制链接对象的全局符号的范围

    我的存档文件中有一个 C 库 clib a 我已经为它编写了一个 C 包装器 cpp o 并想将其用作静态库 ar cTrvs cppwrap a clib a cpp o 链接到此的代码将无法使用来自的内容clib a直接 除非包含正确的
  • 如何从远程(openshift)下载文件/文件夹到本地系统

    如何使用 rhc 客户端工具下载 备份或将文件副本从 openshift 远程文件夹保存到我的本地系统文件夹中 或者除了 rhc 客户端工具之外还有其他方法可以将其备份到我的本地系统吗 另外 有没有办法将整个文件夹从远程 openshift
  • JSON 中位置 1 处出现意外标记 o

    我在下面的代码块中不断收到此错误 function openWebsocket url var ws ws websocket url ws onOpen function event console log Websocket conne
  • 编写更好的正则表达式以不使用惰性重复量词

    我有一个正则表达式
  • asp.net c# 复选框被选中吗?

    如何确定复选框是否被选中 非常困惑为什么这不起作用 就是这么简单 在我的网络表单上
  • 如何在 Visual Studio 2010 中从网站创建解决方案文件 (.sln)

    我将在这里使用 Visual Studio 术语 我有一个网站位于 Visual Studio 2010 Projects My Project Code WebSite 我想为此网站创建一个解决方案文件 sln 文件 该文件位于 Visu
  • PHP:确保数组仅包含来自某个类的对象

    在我的一些设置器中 我传递了一个对象数组 我想确保它只包含给定类的实例 阅读文档 这就是我所做的 class Foo public function construct class ErrorFoo public function cons
  • 自定义二进制文件的惯用 C# 反序列化?

    问候 执行二进制自定义格式的序列化 反序列化的最惯用方法是什么 例如 如何读取具有一组以字节为单位指定的标头 例如 4 4 16 4 8 8 4 16 的文件 没有填充 使用混合整数 byte types 换句话说 在指定结构时 如何实现与