<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="systems" type="ConfigConsoleApplication.SystemsSection, ConfigConsoleApplication" />
</configSections>
<systems>
<system name="Production" server="PRODSERVER" database="Prod" />
<system name="Demo" server="DEMOSERVER" database="Demo" />
<system name="Testing" server="TESTSERVER" database="Test" />
<system name="Development" server="DEVSERVER" database="DEV" />
</systems>
</configuration>
<configuration>
<configSections>
<section name="systems" type="ConfigConsoleApplication.SystemsSection, ConfigConsoleApplication" />
</configSections>
<systems>
<system name="Production" server="PRODSERVER" database="Prod" />
<system name="Demo" server="DEMOSERVER" database="Demo" />
<system name="Testing" server="TESTSERVER" database="Test" />
<system name="Development" server="DEVSERVER" database="DEV" />
</systems>
</configuration>
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Configuration; // remember to add reference in project
using System.Reflection;
using System.Text;
namespace ConfigConsoleApplication
{
public sealed class SystemsSection : ConfigurationSection
{
public SystemsSection()
{
}
[ConfigurationProperty( "", IsDefaultCollectionProperty = true )]
public SystemsCollection Systems
{
get
{
return (SystemsCollection)base[ "" ];
}
}
}
public sealed class SystemsCollection : ConfigurationElementCollection
{
protected override ConfigurationElement CreateNewElement()
{
return new SystemElement();
}
protected override object GetElementKey( ConfigurationElement element )
{
return ( (SystemElement)element ).Name;
}
protected override ConfigurationElementCollectionType CollectionType
{
get
{
return ConfigurationElementCollectionType.BasicMap;
}
}
protected override string ElementName
{
get
{
return "system";
}
}
}
public sealed class SystemElement : ConfigurationElement
{
[ConfigurationProperty( "name", IsCollectionKey = true, RequiredValue = true )]
public string Name
{
get
{
return (string)base[ "name" ];
}
set
{
base[ "name" ] = value;
}
}
[ConfigurationProperty( "server", RequiredValue = true )]
public string Server
{
get
{
return (string)base[ "server" ];
}
set
{
base[ "server" ] = value;
}
}
[ConfigurationProperty( "database", RequiredValue = true )]
public string Database
{
get
{
return (string)base[ "database" ];
}
set
{
base[ "database" ] = value;
}
}
public override string ToString()
{
string output = "SystemElement : ";
output += string.Format( "Name = {0} ", Name );
output += string.Format( "Server = {0} ", Server );
output += string.Format( "Database = {0} ", Database );
return output;
}
} public class Program
{
static void Main( string[] args )
{
SystemsSection sysSection = ConfigurationManager.GetSection( "systems" )
as SystemsSection;
SystemsCollection oneCollection = sysSection.Systems;
foreach ( SystemElement oneElement in oneCollection )
{
Console.WriteLine( oneElement.ToString() );
}
}
}
}
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Configuration; // remember to add reference in project
using System.Reflection;
using System.Text;
namespace ConfigConsoleApplication
{
public sealed class SystemsSection : ConfigurationSection
{
public SystemsSection()
{
}
[ConfigurationProperty( "", IsDefaultCollectionProperty = true )]
public SystemsCollection Systems
{
get
{
return (SystemsCollection)base[ "" ];
}
}
}
public sealed class SystemsCollection : ConfigurationElementCollection
{
protected override ConfigurationElement CreateNewElement()
{
return new SystemElement();
}
protected override object GetElementKey( ConfigurationElement element )
{
return ( (SystemElement)element ).Name;
}
protected override ConfigurationElementCollectionType CollectionType
{
get
{
return ConfigurationElementCollectionType.BasicMap;
}
}
protected override string ElementName
{
get
{
return "system";
}
}
}
public sealed class SystemElement : ConfigurationElement
{
[ConfigurationProperty( "name", IsCollectionKey = true, RequiredValue = true )]
public string Name
{
get
{
return (string)base[ "name" ];
}
set
{
base[ "name" ] = value;
}
}
[ConfigurationProperty( "server", RequiredValue = true )]
public string Server
{
get
{
return (string)base[ "server" ];
}
set
{
base[ "server" ] = value;
}
}
[ConfigurationProperty( "database", RequiredValue = true )]
public string Database
{
get
{
return (string)base[ "database" ];
}
set
{
base[ "database" ] = value;
}
}
public override string ToString()
{
string output = "SystemElement : ";
output += string.Format( "Name = {0} ", Name );
output += string.Format( "Server = {0} ", Server );
output += string.Format( "Database = {0} ", Database );
return output;
}
} public class Program
{
static void Main( string[] args )
{
SystemsSection sysSection = ConfigurationManager.GetSection( "systems" )
as SystemsSection;
SystemsCollection oneCollection = sysSection.Systems;
foreach ( SystemElement oneElement in oneCollection )
{
Console.WriteLine( oneElement.ToString() );
}
}
}
}