Мне нужно для чтения / записи файлов в соответствии с форматом, предоставленным сторонней спецификацией.Сама спецификация довольно проста: в ней указывается положение и размер данных, которые будут сохранены в файле.Например:
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);
//...
}
Есть идеи на этот счет?