2014-06-21 27 views
2
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(); 

結果是:鍵值對被添加到web.config文件雖然文件屬性定義

<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> 

爲什麼不加入的設置文件?

+0

不是100%肯定我明白這一個,什麼是從結果缺失? –

+0

@FionaTaylorGorringe''應該添加到tst.config文件中,但正如您在web.config文件中的結果中看到的那樣 –

回答

2

您應該能夠像這樣編程設置(而不是File)的配置源:

ConfigurationSection subsec = config.GetSection("testing/subsec"); 
subsec.SectionInformation.ConfigSource = "tst.config"; 
+0

如果我定義了'configSource'它添加並從配置源讀取的文件(一切正常)問題是,因爲該部分是以編程方式創建的,所以我沒有定義configSource的選項。 (或我?) –

+0

我看到,已添加另一個選項(未測試)。 – weston

+1

我爲你測試過;)它效果很好。謝謝 –

相關問題