我正在为Articy Draft编写一个解析器,这是一个将整个项目导出为XML文档的编写工具。其中大部分都相当简单,但它处理实体的方式有点棘手。
基本上,每个实体都有一组功能,每个功能都是一组属性。每个属性可以是int,字符串或枚举,并且具有名称(字符串)和ID(长)。
我正在试图找出在每个实体中存储此数据的最佳方式。我希望它是通用的,而不是预定义的实体,因为这更具有前瞻性。我想我对C#缺乏经验,知道存储它的正确方法。我只是需要来根据数据字段的名称进行索引。能够为ID编制索引也是一种奖励,但根本不需要。
我可以有三个词典,每个词典用于int,枚举和字符串。根据我喜欢的名称或索引为每个索引编制索引。有三个不同的收藏似乎有点混乱,但也许这是最好的方式。
我可以使用DataColumns在每个实体中创建一个DataTable,其中包含ID,name,datatype和value的列,但是你需要三个值列(或者两个,我猜因为枚举可以存储为int)和这也有点混乱。
这是一个我可以用我现有的知识轻松解决的问题,但它只是感觉有一个比我意识到的更优雅的解决方案,并且我有机会在这里扩展我的C#知识。