C# ConfigurationManager情况:两个外部.config文件

C# ConfigurationManager情况:两个外部.config文件,c#,wpf,configurationmanager,C#,Wpf,Configurationmanager,我尝试让ConfigurationManager在两个单独的.config文件上工作 在app.config中,我有两个部分常量和Cups以及它们对应的 Constants.config和Cups.config: <configuration> <configSections> <sectionGroup name="userSettings" type="System.Configuration.UserSet

我尝试让ConfigurationManager在两个单独的.config文件上工作

在app.config中,我有两个部分常量和Cups以及它们对应的 Constants.config和Cups.config:

<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="MyProj.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
        <section name="Constants" type="System.Configuration.NameValueSectionHandler"/>
        <section name="Cups" type="MyProj.Config.CupsConfigurationSection, MyProj"/>
    </configSections>
    <Constants configSource="Constants.config"/>
    <Cups configSource="Cups.config"/>
     ...
     
这是Cups部分类:

public class CupsConfigurationSection : ConfigurationSection
{
    public CupsConfigurationSection()
    {
    }

    [ConfigurationProperty("Cups")]
    [ConfigurationCollection(typeof(Cups))] // Cups or Cup?
    public Cups Cups 
    { 
        get 
        {
            return (Cups) this["Cups"] ; 
        } 
    }
}        
问题:我做错了什么? 我用于杯子的部分正确吗?
已经做了将近一个星期了

<Cups>
    <Cup name="Kevin" Description="Kevins cup" Size="23.0" ... />
   ...
public class Cup : ConfigurationElement
{
    public Cup()
    {
    }

    public double Size,
       ...;
       
    [ConfigurationProperty("name", IsKey = true, IsRequired = true)]
    public string Name
    {
        get
        {
            return (string) base["name"];
        }
        set
        {
            base["name"] = value;
        }
    }

    [ConfigurationProperty("Description", DefaultValue = "NewCup")]
    public string Description { get { return base["Description"] as string; } }       

    [ConfigurationProperty("Size", DefaultValue = 5.78)]
    public string _Size
    {
        get
        {                
            return (string) base["Size"];
        }
        set
        {
           // config properties are always strings, which is inconvenient. 
           // So I maintain their double counterparts for use in the app.
           Size = Convert.ToDouble((string) base["Size"]);
           base["Size"] = value;
        }
    }    
    ...
    
public class CupsConfigurationSection : ConfigurationSection
{
    public CupsConfigurationSection()
    {
    }

    [ConfigurationProperty("Cups")]
    [ConfigurationCollection(typeof(Cups))] // Cups or Cup?
    public Cups Cups 
    { 
        get 
        {
            return (Cups) this["Cups"] ; 
        } 
    }
}