二进制解码器与xml指定的数据结构

本文关键字:数据结构 xml 解码器 二进制 | 更新日期: 2023-09-27 18:01:17

我想构建c#二进制解码器。我有一个描述二进制文件数据结构的XML文件。

下一步是基于该XML动态创建数据结构(在代码中)。你们有任何评论,链接,代码等给我吗?

我知道这是一个普遍的问题,但我只是想从哪里开始,我不知道从哪里开始。

编辑:

抱歉需要删除代码

BR

二进制解码器与xml指定的数据结构

因为您想动态创建结构(而不是基于XML定义静态构建类),我猜您需要一个可以查询的通用数据结构。具体是什么样子取决于你描述的是哪种数据结构。是记录和字段吗?层次结构中是否有多种记录类型?如果没有层次结构,您可以为每个字段使用键值对的字典。如果有层次结构,我认为一个可导航的树将涵盖大多数场景。您可以为此使用XML DOM,但我认为这不是最干净的解决方案,我更喜欢使用通用树结构。没有一个内置的(参见c#中的树数据结构),但是用泛型创建一个是相当容易的。

编辑上面的代码假设你想动态地创建一个结构,以便动态地使用。如果你想动态地在代码中创建一个将被静态地使用的结构(例如,你想要能够编写像myDataStrucureThatWasDefinedInXml.MyProperty1这样的东西),请查看CodeDom。

仔细想想,这真的取决于你反序列化二进制数据后想要做什么。您可能还想查看Expando对象和表达式树。

要读写XML文档的内容,可以使用c#中提供的XmlDocument类。

这里有一些链接,可以帮助你:

  • http://www.codeproject.com/Articles/318876/Using-the-XmlReader-class-with-Csharp
  • http://www.codeproject.com/Articles/21167/XML-C-STARTING-GUIDE-First-Part