我想下载一个文件,将其解析并放在某个地方。所以我在下面列出了几个部分,我想使用下面的指令来指导程序应该做什么。我喜欢这种形式的配置,我想弄清楚如何让它以某种方式工作,但我知道它不会完全像这样,因为我不能多次使用相同的部分。我只是希望有人可以就如何让这个想法发挥作用提出一些想法。
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<sectionGroup name="processor">
<sectionGroup name="process">
<!-- AVAILABLE TRANSPORTS -->
<section name="ftp_transport" type="someFTPClass1, someAssembly"/>
<section name="web_transport" type="someHTTPClass2, someAssembly"/>
<!-- AVAILABLE PARSERS -->
<section name="fixed_line_parser" type="someParserClass3, someAssembly" />
<section name="regular_expression_parser" type="someParserClass4, someAssembly" />
<!-- AVAILABLE LOADERS -->
<section name="database_loader" type="someDbLoaderClass5, someAssembly" />
</sectionGroup>
</sectionGroup>
</configSections>
然后这样的事情来推动该计划:
<processor>
<process name="File1">
<ftp_transport>...</ftp_transport>
<fixed_line_parser>...</fixed_line_parser>
<database_loader>...</database_loader>
</process>
<process name="File2">
<web_transport>...</web_transport>
<fixed_line_parser>...</fixed_line_parser>
<database_loader>...</database_loader>
</process>
</processing>
答案 0 :(得分:1)
好像你基本上正在构建Inversion of Control (IoC) container。看一下.Net here
中的一些答案 1 :(得分:0)
您是否将SectionGroup嵌套在SectionGroup中?将外部SectionGroup标记更改为SectionGroups而不是SectionGroup。
<!-- SECTION DECLARATION -->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<sectionGroups name="processor">
<sectionGroup name="process">
<!-- AVAILABLE TRANSPORTS -->
<section name="ftp_transport" type="someFTPClass1, someAssembly"/>
<section name="web_transport" type="someHTTPClass2, someAssembly"/>
<!-- AVAILABLE PARSERS -->
<section name="fixed_line_parser" type="someParserClass3, someAssembly" />
<section name="regular_expression_parser" type="someParserClass4, someAssembly" />
<!-- AVAILABLE LOADERS -->
<section name="database_loader" type="someDbLoaderClass5, someAssembly" />
</sectionGroup>
</sectionGroups>
</configSections>
答案 2 :(得分:0)
我想做类似的事情。经过几个小时的搜索,我找到了这个例子:
http://www.dotneat.net/2007/10/16/StoringACollectionOnYourAppconfigUsingSectionHandlers.aspx
运作良好。