Сопоставить положение элемента в файле данных со свойством класса - PullRequest
1 голос
/ 23 мая 2010

Мне нужно для чтения / записи файлов в соответствии с форматом, предоставленным сторонней спецификацией.Сама спецификация довольно проста: в ней указывается положение и размер данных, которые будут сохранены в файле.Например:

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 голосов
/ 23 мая 2010

Настраиваемые атрибуты были моим предложением, но я вижу, вы уже думали об этом.Кроме того, единственным моим предложением было бы сохранить отображение, скажем, в файле XML.

...