1

サードパーティの仕様で提供されている形式に従って、ファイルを読み書きする必要があります。仕様自体は非常に単純です。ファイルに保存されるデータの位置とサイズを示しています。例えば:

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);
    //...
}

これに関するアイデアはありますか?

4

1 に答える 1

0

カスタム属性は私の提案でしたが、あなたはすでにそれについて考えているようです. それ以外の唯一の提案は、マッピングを XML ファイルに保存することです。

于 2010-05-23T05:32:48.933 に答える