C# 出入段';应用程序设置';(不是安装程序的配置文件中的';appSettings';)

C# 出入段';应用程序设置';(不是安装程序的配置文件中的';appSettings';),c#,web-config,appsettings,application-settings,C#,Web Config,Appsettings,Application Settings,我正在为我们构建的web应用程序创建设置。不,我有一个配置文件,看起来像这样,其中包含“appSettings”部分和“applicationSettings”部分: <configuration> <appSettings> <add key="Password" value="dummy"/> <add key="Username" value="dummy"/> <add key="DB" value="dumm

我正在为我们构建的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>
// 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();
但无论如何,我无法在“应用程序设置”部分做到这一点。在web应用程序本身中,我通过

Properties.Settings.Default.<Setting>
Properties.Settings.Default。
但这在我的安装项目中不起作用

是否有机会像编辑“应用程序设置”部分一样轻松地编辑“应用程序设置”部分?还是必须编辑xml本身? 任何暗示都将不胜感激

亲切问候,,
Kai Hartmann

我很抱歉自己回答了我的问题,因为我在发布后就找到了解决方案。这个问题基本上给出了答案:

我必须使用这段代码来编写“应用程序设置”部分:

<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>
// 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();