我想构建 C# 二进制解码器。我有描述二进制文件数据结构的 XML 文件。
下一步是基于该 XML 动态创建数据结构(在代码中)。你们对我有任何意见、链接、代码等吗?
我知道这是一个普遍的问题,但我只想从哪里开始,我不知道从哪里开始。
编辑:
抱歉需要删除代码...
BR
我想构建 C# 二进制解码器。我有描述二进制文件数据结构的 XML 文件。
下一步是基于该 XML 动态创建数据结构(在代码中)。你们对我有任何意见、链接、代码等吗?
我知道这是一个普遍的问题,但我只想从哪里开始,我不知道从哪里开始。
编辑:
抱歉需要删除代码...
BR
由于您想动态创建结构(而不是基于 XML 定义静态构建类),我猜您需要一个通用数据结构,然后您可以查询。这到底是什么样子取决于您描述的数据结构类型。是记录和字段吗?层次结构中是否有多种记录类型?如果没有层次结构,您可以只为每个字段使用键值对字典。如果存在层次结构,我会认为可导航树将涵盖大多数情况。您可以为此使用 XML DOM,但我认为这不是最干净的解决方案,我更喜欢使用通用树结构。没有内置的(请参阅C# 中的树数据结构),但使用泛型创建一个相当容易。
编辑
以上假设您要动态创建要动态使用的结构。如果您想在代码中动态地创建一个将被静态使用的结构(例如,您希望能够编写类似myDataStrucureThatWasDefinedInXml.MyProperty1
的东西),请查看 CodeDom。
并且考虑了更多,这实际上取决于您在反序列化二进制数据后想要做什么。您可能还想查看 Expando 对象和表达式树。
要读取和写入 XML 文档的内容,您可以使用XmlDocument
C# 中提供的类。
以下是一些可以帮助您的链接: