C# ConfigurationManager情况:两个外部.config文件
我尝试让ConfigurationManager在两个单独的.config文件上工作 在app.config中,我有两个部分常量和Cups以及它们对应的 Constants.config和Cups.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
<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"] ;
}
}
}