次のように配置された 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
}
}