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>