【发布时间】:2016-03-05 08:38:19
【问题描述】:
我在这里寻找有关如何处理我的问题的建议,并了解是否已经有一些工具可以像这样工作,但我不知道...... 好吧,我必须使用他们的自定义二进制文件格式将大量数据从我的系统传递到另一个系统来交换数据。 我有许多(类似 tlv 的)二进制文件要生成,我正在寻找如何实现我的目标而无需手写太多代码,因为有人告诉我 文件格式很快就会发展起来。
例如,这是我系统中的 2 个表(产品列表及其不同 iso 代码的标签):
产品表:
---------
SAL_产品
----------
编号 (3)
VENDOR_ID NUMBER (3)
MODEL_REF VARCHAR2(30)
----------
产品标签表:
---------
SAL_PRODUCT_LABEL
----------
PRODUCT_ID NUMBER(3)
ISO_LANG_CODE VARCHAR2(5)
标签 VARCHAR2(40)
----------
我必须生成一个类似于此结构的二进制文件:
- [Byte-size]
-
[Elm-count]
[Byte-size]
[ID]
-
[VENDORID]
-
[Elm-count]
[Byte-size]
[LANG_ID]
[LABELID]
-
我发现我必须创建一个能够处理 xml 元数据文件的文件生成器:
<messages type="product" select="select ID,VENDOR_ID, MODEL_REF from SAL_PRODUCT order by 1">
<message>
<prop type="ID"/>
<prop type="VENDOR_ID" />
<messages type="labels" select="select product_id, ISO_LANG_CODE as LANGID, LABEL from SAL_PRODUCT_LABEL" joinclause="product.ID = labels.product_id " >
<message >
<prop type="LANGID" />
<prop type="LABEL" />
</message>
</messages>
<prop type="MODEL_REF"/>
</message>
</messages>
但是我所有的 C# 代码都应该是动态的,并且能够解析和使用嵌套结构...... 从这里我不知道如何处理我的问题:
我是否选择了正确的解决方案?
您将如何处理此类问题?
感谢您的帮助
【问题讨论】:
标签: c# serialization recursive-datastructures