我想构建C#二进制解码器。我有XML文件,它描述了二进制文件的数据结构。
下一步是基于该XML动态生成数据结构(在代码中)。 你们/女孩对我有任何评论,链接,代码等吗?
我知道这是一般性的问题,但我只是想从哪里开始,我不知道从哪里开始。
编辑:
抱歉需要删除代码......
BR
答案 0 :(得分:1)
由于您希望动态创建结构(而不是基于XML定义静态构建类),我想您需要一个可以查询的通用数据结构。这看起来完全取决于您所描述的数据结构类型。是记录和字段吗?层次结构中是否有多种记录类型?如果没有层次结构,则可以为每个字段使用键值对字典。如果存在层次结构,我认为可导航的树将覆盖大多数场景。您可以使用XML DOM,但我认为这不是最干净的解决方案,我更喜欢使用通用树结构。没有内置的(见Tree data structure in C#),但用泛型创建一个很容易。
修改
以上假设您要动态创建使用的结构。
如果你想在代码中动态地创建一个静态使用的结构(例如你希望能够编写像myDataStrucureThatWasDefinedInXml.MyProperty1
这样的东西),那么看看CodeDom。
在考虑了更多关于它之后,它实际上取决于您在反序列化二进制数据后想要做什么。您可能还想查看Expando对象和表达式树。
答案 1 :(得分:0)
要读取和写入XML文档的内容,您可以使用C#中提供的XmlDocument
类。
以下是一些可以帮助您的链接: