I was able to get this to work without much customization. It is similar to JerKimball's answer but I avoids processing the custom string processing by using a TypeConverter attribute for the ConfigurationProperty.
My custom config section implementation:
using System.Configuration;
using System.ComponentModel;
class DomainConfig : ConfigurationSection
{
[ConfigurationProperty("DoubleArray")]
[TypeConverter(typeof(CommaDelimitedStringCollectionConverter))]
public CommaDelimitedStringCollection DoubleArray
{
get { return (CommaDelimitedStringCollection)base["DoubleArray"]; }
}
}
How it's used:
var doubleValues = from string item in configSection.DoubleArray select double.Parse(item);
And the config file:
<DomainConfig DoubleArray="1.0,2.0,3.0"></DomainConfig>