【问题标题】:Access section 'applicationSettings' (not 'appSettings') in config file from setup从安装程序访问配置文件中的“applicationSettings”部分(不是“appSettings”)
【发布时间】:2013-06-28 09:15:26
【问题描述】:

我正在为我们构建的 Web 应用程序创建设置。不,我有一个配置文件,看起来像这样,其中包含一个“appSettings”部分和一个“applicationSettings”部分:

<configuration>
<appSettings>
    <add key="Password" value="dummy"/>
    <add key="Username" value="dummy"/>
    <add key="DB" value="dummy"/>
    <add key="DBServer" value="dummy"/>
    <add key="LogStoredProcedure" value="dummy"/>
    <add key="ErrorStoredProcedure" value="dummy"/>
    <add key="ErrorFileName" value="dummy"/>
    <add key="EncryptionKey" value="dummy"/>
</appSettings>
<applicationSettings>
    <inoBIBooks.My.MySettings>
      <setting name="BIDB_Username" serializeAs="String">
        <value>Username</value>
      </setting>
      <setting name="BIDB_Server" serializeAs="String">
        <value>Servername</value>
      </setting>
      <setting name="BIDB_Database" serializeAs="String">
        <value>Database</value>
      </setting>
      <setting name="BIDB_Password" serializeAs="String">
        <value>Password</value>
      </setting>
    </inoBIBooks.My.MySettings>
</applicationSettings>
</configuration>

现在,从我的设置中,我必须从文件系统中打开配置文件 配置 config = WebConfigurationManager.OpenWebConfiguration("/" + targetvdir); 其中变量“targetvdir”包含配置文件的路径。

我通过这个获取配置文件,并且可以通过

编辑“appSettings”部分
config.AppSettings.Settings["Password"].Value = "something";

但无论如何我都无法使用“applicationSettings”部分来做到这一点。在 Web 应用程序本身中,我通过

访问该部分
Properties.Settings.Default.<Setting>

但这不适用于我的设置项目。

是否有机会像编辑“appSettings”部分一样简单地编辑“applicationSettings”部分?还是我必须编辑 xml 本身? 非常感谢任何提示。

亲切的问候, 凯哈特曼

【问题讨论】:

    标签: c# web-config appsettings application-settings


    【解决方案1】:

    对于自己回答我的问题,我深表歉意,因为我在发布问题后立即找到了解决方案。这个问题基本给出了答案:Save and reload app.config(applicationSettings) at runtime

    我必须使用这段代码来写入“applicationSettings”部分:

    // this gets the applicationSettings section (and the inner section 'inoBIBooks.My.MySettings')
    Configuration config = WebConfigurationManager.OpenWebConfiguration("/" + targetvdir);
    ConfigurationSectionGroup applicationSectionGroup = config.GetSectionGroup("applicationSettings");
    ConfigurationSection applicationConfigSection = applicationSectionGroup.Sections["inoBIBooks.My.MySettings"];
    ClientSettingsSection clientSection = (ClientSettingsSection)applicationConfigSection;
    
    // set a value to that specific property
    SettingElement applicationSetting = clientSection.Settings.Get("BIDB_Username");
    applicationSetting.Value.ValueXml.InnerText = "username";
    
    // without this, saving won't work
    applicationConfigSection.SectionInformation.ForceSave = true;
    // save
    config.Save();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-01
      • 2016-01-11
      • 2017-04-19
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多