我需要按照第三方规范提供的格式读取/写入文件。规范本身非常简单:它说明了将保存在文件中的数据的位置和大小。例如:
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);
//...
}
关于这个有什么想法吗?