带有基于OP config文件的代码的完整示例:
<configuration> <configSections> <section name="registerCompanies" type="My.MyConfigSection, My.Assembly" /> </configSections> <registerCompanies> <add name="Tata Motors" pre="Tata"/> <add name="Honda Motors" pre="Honda"/> </registerCompanies></configuration>
这是示例示例,用于实现折叠集合的自定义配置部分
using System.Configuration;namespace My {public class MyConfigSection : ConfigurationSection { [ConfigurationProperty("", IsRequired = true, IsDefaultCollection = true)] public MyConfigInstanceCollection Instances { get { return (MyConfigInstanceCollection)this[""]; } set { this[""] = value; } }}public class MyConfigInstanceCollection : ConfigurationElementCollection { protected override ConfigurationElement CreateNewElement() { return new MyConfigInstanceElement(); } protected override object GetElementKey(ConfigurationElement element) { //set to whatever Element Property you want to use for a key return ((MyConfigInstanceElement)element).Name; }}public class MyConfigInstanceElement : ConfigurationElement { //Make sure to set IsKey=true for property exposed as the GetElementKey above [ConfigurationProperty("name", IsKey = true, IsRequired = true)] public string Name { get { return (string) base["name"]; } set { base["name"] = value; } } [ConfigurationProperty("pre", IsRequired = true)] public string Code { get { return (string) base["pre"]; } set { base["pre"] = value; } } } }这是如何从代码访问配置信息的示例。
var config = ConfigurationManager.GetSection("registerCompanies") as MyConfigSection;Console.WriteLine(config["Tata Motors"].Code);foreach (var e in config.Instances) { Console.WriteLine("Name: {0}, Code: {1}", e.Name, e.Code); }


