c# - 使用 ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) 以编程方式更新 app.config 文件;

标签 c#

以编程方式更新 app.config 文件

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

这是我的xml

<configuration>
  <configSections>
    <section name="nhibernateSettings" type="ProjectBase.Data.OpenSessionInViewSection, ProjectBase.Data" />
  </configSections>
  <appSettings>
    <add key="NHibernateConfigPath" value="D:\PROJEKTI\crawler\WebCrawlerSuite\ViaMura.Web\NHibernate.config" />
    <!--<add key="NHibernateConfigPath" value="C:\_ZAGON\ViaMura\CurrencyApp\at\NHibernate.config" />-->
    <add key="ClientSettingsProvider.ServiceUri" value="" />
  </appSettings>
  <connectionStrings>
    <add name="connectionString" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Viamura_at;Data Source=.\SQL2008" providerName="System.Data.SqlClient" />
    <!--<add name="connectionString" connectionString="server=193.37.152.24\SQL2008;User Id=DBUser;password=Lualah8991;database=Viamura_at" providerName="System.Data.SqlClient" />-->
  </connectionStrings>
  <nhibernateSettings>
    <!-- List every session factory that will be needed; transaction management and closing sessions 
          will be managed with the open-session-in-view module -->
    <sessionFactories>
      <clearFactories />
      <sessionFactory name="WebCrawlerFactory" factoryConfigPath="D:\PROJEKTI\crawler\WebCrawlerSuite\ViaMura.Web\NHibernate.config" isTransactional="true" />
      <!--<sessionFactory name="WebCrawlerFactory" factoryConfigPath="C:\_ZAGON\ViaMura\CurrencyApp\at\NHibernate.config" isTransactional="true" />-->
    </sessionFactories>
  </nhibernateSettings>

如何以编程方式编辑 WebCrawlerFactory?我正在使用

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

最佳答案

您可以使用以下代码:

private void UpdateConfig(string key, string value, string fileName)
{
    var configFile = ConfigurationManager.OpenExeConfiguration(fileName);
    configFile.AppSettings.Settings[key].Value = value;

    configFile.Save();
}

其中:fileName为完整路径+应用名(c:\project\application.exe)

在您的情况下,按部分更改 AppSetting:

configFile.Sections["nhibernateSettings"]

关于c# - 使用 ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) 以编程方式更新 app.config 文件;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8522912/

相关文章:

c# - WebApi 路由导致 404(未找到)响应

c# - 在 C# 的属性设置中使用 virtual 和 protected 关键字?

c# - 突出显示 RichTextBox 中的一行

c# - 使用 LINQ 转换 IEnumerable 的集合

c# - 我可以在自定义 ConfigurationSection 上使用 IntegerValidator 属性指定范围吗?

c# - 传递接口(interface)而不是对象实例

c# - 为什么我们使用接口(interface)作为抽象类也这样做?

c# - 寻找 boolean 语句的解释

c# - [A]MySql.Data.MySqlClient.MySqlConnection 无法转换为 [B]MySql.Data.MySqlClient.MySqlConnection

c# - 应用程序关闭,恕不另行通知