Custom Section Handler
public class NamedProcsSectionHandler : IConfigurationSectionHandler
{
public object Create(
object parent,
object configContext,
XmlNode section)
{
NamedProcCollection npc = new NamedProcCollection();
XmlElement elemNamedProcs = (XmlElement) section;
XmlNodeList listNamedProc = elemNamedProcs.GetElementsByTagName("NamedProc");
foreach (XmlElement elemNamedProc in listNamedProc)
{
// Etc.
}
}
}
Declaration / Use of Custom Handler
<configuration>
<configSections>
<sectionGroup name="Turtleneck.DotNetProc">
<sectionGroup name="Settings">
<section name="Databases"
type="Turtleneck.ProcSupport.DatabasesSectionHandler, Turtleneck.ProcSupport" />
</sectionGroup>
<section name="NamedProcs"
type="Turtleneck.ProcSupport.NamedProcsSectionHandler, Turtleneck.ProcSupport" />
</sectionGroup>
</configSections>
<Turtleneck.DotNetProc>
<NamedProcs>
<NamedProc name="TestProc"
assemblyName="Turtleneck.ProcSupport"
class="Turtleneck.ProcSupport.TestProc"
action="TestSendMessage">
<Prop name="PropString">This is a prop string</Prop>
<Prop name="PropInt">1234</Prop>
</NamedProc>
<Settings>
<Databases>
<Database name="Turtleneck" connectionString="server=MYSERVER;user id=???; pwd=???" />
</Databases>
</Settings>
</Turtleneck.DotNetProc>
</configuration>