C# 虽然定义了文件属性,但正在将键值对添加到web.config文件中
结果是:C# 虽然定义了文件属性,但正在将键值对添加到web.config文件中,c#,asp.net,configuration,web-config,C#,Asp.net,Configuration,Web Config,结果是: Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); config.SectionGroups.Add("testing", new ConfigurationSectionGroup()); ConfigurationSectionGroup testing = config.SectionGroups["test
Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
config.SectionGroups.Add("testing", new ConfigurationSectionGroup());
ConfigurationSectionGroup testing = config.SectionGroups["testing"];
testing.Sections.Add("subsec", new AppSettingsSection() {File="tst.config" });
KeyValueConfigurationCollection settings = ((AppSettingsSection)testing.Sections["subsec"]).Settings;
settings.Add("tst", "ok");
config.Save();
//不应在此处,但必须将其添加到tst.config文件中
为什么不将设置添加到文件?您应该能够通过编程方式(而不是
文件
)设置配置源,如下所示:
不是100%确定我理解这一点,结果中缺少了什么?@fionatyolorgorringe
应该添加到tst.config文件中,但正如您在结果中看到的那样,如果我定义configSource
而不是文件,它将添加并从配置源读取(一切正常)问题是,由于节是以编程方式创建的,因此我没有定义configSource的选项。(或者是吗?)我明白了,我添加了另一个选项(未经测试)。我刚刚修改了您的代码,使之与问题中的示例完全匹配
<sectionGroup name="testing" type="System.Configuration.ConfigurationSectionGroup, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" >
<section name="subsec" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</sectionGroup>
<testing>
<subsec file="tst.config">
<add key="tst" value="ok" /> //this should not be here but must be added to the tst.config file
</subsec>
</testing>
ConfigurationSection subsec = config.GetSection("testing/subsec");
subsec.SectionInformation.ConfigSource = "tst.config";