我需要按照第三方规范提供的格式读/写文件。规范本身非常简单:它表示将保存在文件中的数据的位置和大小。 例如:
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);
//...
}
关于这个的任何想法?
答案 0 :(得分:0)
自定义属性将成为我的建议,但我看到你已经考虑过了。除此之外,我唯一的另一个建议是将映射存储在XML文件中。