首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);编程更新app.config文件

用ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);编程更新app.config文件
EN

Stack Overflow用户
提问于 2011-12-15 15:59:32
回答 2查看 54.8K关注 0票数 14

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

配置配置= ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

这是我的xml

代码语言:javascript
复制
<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?我在用

配置配置= ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

EN

回答 2

Stack Overflow用户

发布于 2012-06-05 15:40:29

您可以使用以下代码:

代码语言:javascript
复制
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:

代码语言:javascript
复制
configFile.Sections["nhibernateSettings"]
票数 31
EN

Stack Overflow用户

发布于 2011-12-15 18:11:48

ProjectBase.Data.OpenSessionInViewSection表示已经定义了一个自定义配置节,允许访问配置设置。但是,它可能是受保护的,或者是NHibernate内部的。

查看是否可以引用该类来访问设置。

您也可以自己创建一个自定义配置节,但是它会导致NHibernate配置不当,因为它无法正确加载配置部分。

请参阅如何:使用ConfigurationSection创建自定义配置节

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8522912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档