サードパーティの仕様で提供されている形式に従って、ファイルを読み書きする必要があります。仕様自体は非常に単純です。ファイルに保存されるデータの位置とサイズを示しています。例えば:
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 の要素があります。しかし、それらの多くは組み合わせることができます。たとえば、時、分、秒、日、月、および年を 1 つの DateTime オブジェクトに組み合わせることができます。要素を約 4 つのカテゴリに分割し、データを保持するための個別のクラスを作成しました。そのため、データを表す大きな構造の代わりに、いくつかの小さなクラスを用意しています。また、データの読み取りと書き込み用にさまざまなクラスを作成しました。
問題は、読み取り/書き込みクラスで値を繰り返す必要がないように、ファイル内の位置をオブジェクト プロパティにマップする方法です。いくつかのカスタム属性を使用して、リフレクションを介してそれらを取得できます。ただし、コードはメモリとプロセッサが小さいデバイスで実行されるため、別の方法を見つけるとよいでしょう。私の現在の読み取りコードは次のようになります。
public void Read() {
DataFile dataFile = new DataFile();
// the arguments are: position, size
dataFile.SerialNumber = ReadLong(1, 10);
//...
}
これに関するアイデアはありますか?