将数据文件中的元素位置映射到类属性

时间:2010-05-23 03:55:50

标签: c# mapping text-files binaryfiles

我需要按照第三方规范提供的格式读/写文件。规范本身非常简单:它表示将保存在文件中的数据的位置和大小。 例如:

Position        Size        Description
--------------------------------------------------
0001            10          Device serial number
0011            02          Hour
0013            02          Minute
0015            02          Second
0017            02          Day
0019            02          Month
0021            02          Year

列表很长,它有大约400个元素。但很多可以合并。例如,小时,分钟,秒,日,月和年可以组合在一个DateTime对象中。 我将元素拆分为大约4个类别,并创建了用于保存数据的单独类。因此,我有一些较小的类,而不是代表数据的大结构。我还创建了不同的类来读取和写入数据。

问题是:如何将文件中的位置映射到对象属性,这样我就不需要在读/写类中重复这些值了?我可以使用一些自定义属性并通过反射检索它们。但由于代码将在具有小内存和处理器的设备上运行,因此找到另一种方式会很不错。 我目前的读取代码如下所示:

public void Read() {
    DataFile dataFile = new DataFile();
    // the arguments are: position, size
    dataFile.SerialNumber = ReadLong(1, 10);
    //...
}

关于这个的任何想法?

1 个答案:

答案 0 :(得分:0)

自定义属性将成为我的建议,但我看到你已经考虑过了。除此之外,我唯一的另一个建议是将映射存储在XML文件中。