在C#中自定义以下app.config?

时间:2012-04-27 16:42:42

标签: c#

我必须通过通用解析器解析几个包含头文件的逗号分隔文件。标题数量很多,我需要提供选择重要的几个标题的能力。

为每种文件类型实现我的通用解析器的具体解析器必须覆盖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>
  ...

第二个选项将允许在不影响代码的情况下在文件中查找实际标头值的更改。

我该怎么做?我有没有已经实现的quickfix?

1 个答案:

答案 0 :(得分:1)

如果您想使用配置进行操作,但又不希望手动编码的学习曲线在您的配置部分中查看http://csd.codeplex.com/的视觉工作室插件。非常干净,易于理解。

相关问题