我的 web.config 部分安排如下:
<Section>
<service1>
<add name="Web" info="xyz"/>
</service1>
<service2>
<add name="App" info="xyz"/>
</service2>
<service3>
<add name="Data" info="xyz"/>
</service3>
</Section>
我使用以下方法遍历了每个元素:
var mySection = (Sections)ConfigurationManager.GetSection("Section");
和
foreach (SectionsElement element in mySection.service1)
foreach (SectionsElement element in mySection.service2)
foreach (SectionsElement element in mySection.service3)
然而,这需要在每个 foreach 中复制大量代码,因为它们或多或少地执行相同的操作。有什么想法可以概括这个迭代吗?
编辑:设法通过创建对象列表来解决这个问题。
var allservices = new List<object>(){
mySection.service1,
mySection.service2,
mySection.service3
}
然后迭代:
foreach (IEnumerable service in allservices)
{
foreach (SectionsElement element in service)
{
//repetitive code
}
}