2

汎用パーサーを介して、ヘッダーを含むいくつかのコンマ区切りファイルを解析する必要があります。ヘッダーは非常に多くあり、重要ないくつかのヘッダーを選択する機能を提供する必要があります。

ファイルタイプごとにジェネリックパーサーを実装する具体的なパーサーは、特にonLine(IDictionary | string、string | line)メソッドをオーバーライドする必要があります。この行は、ヘッダー値を行内の対応するデータにマップします。

私の問題:現在、app.configでコンマ区切りのリストを使用しています。その問題は、私の具体的なパーサーが実際のヘッダー値をキーとして使用する必要があることです。定数を導入できるようにしたいので、ヘッダーが変更された場合に再構築する必要はありません。

現時点では、私のapp.configは次のようになっています。

  <configSections>
    ...
    <section name="headers" type="System.Configuration.NameValueSectionHandler" />
    ...
  </configSections>
  ...
  <headers>
    ...
    <add key="file1" value="actualheader1,actualheader2,actualheader3" />
    <add key="file2" value="actualheader4,actualheader5,actualheader6" />
    <add key="file3" value="actualheader7,actualheader8,actualheader9" />
    ...
  </headers>
  ...

私は次のようなものが必要になります(タグ、キー、値に関する要件はなく、私が求めているロジックを表示しようとしているだけです):

  <configSections>
    ...
    <section name="headers" type="?" />
    ...
  </configSections>
  ...
  <headers>
    ...
    <file1>
      <add key="headerconstant1" value="actualheader1" />
      <add key="headerconstant2" value="actualheader2" />
      <add key="headerconstant3" value="actualheader3" />
    </file1>
    <file2>
      <add key="headerconstant4" value="actualheader4" />
      <add key="headerconstant5" value="actualheader5" />
      <add key="headerconstant6" value="actualheader6" />
    </file2>
    <file3>
      <add key="headerconstant7" value="actualheader7" />
      <add key="headerconstant8" value="actualheader8" />
      <add key="headerconstant9" value="actualheader9" />
    </file3>
    ...
  </headers>
  ...

2番目のオプションでは、実際のヘッダー値を変更して、コードに影響を与えることなくファイルを検索できます。

これどうやってするの ?すでに実装されているクイックフィックスはありますか?

4

1 に答える 1

1

構成でそれを行いたいが、構成セクションを手作業でコーディングする学習曲線を望まない場合は、http://csd.codeplex.com/ でビジュアル スタジオ アドインを確認してください。とてもきれいでわかりやすい。

于 2012-04-27T16:59:46.160 に答える