更新ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)编程app.config文件; [英] update app.config file programatically with ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

查看:204
本文介绍了更新ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)编程app.config文件;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

与编程更新app.config文件


  

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


这是我的XML

 <结构>
  < configSections>
    <节名称=nhibernateSettingsTYPE =ProjectBase.Data.OpenSessionInViewSection,ProjectBase.Data/>
  < / configSections>
  <&的appSettings GT;
    <添加键=NHibernateConfigPathVALUE =D:\\ PROJEKTI \\履带\\ WebCrawlerSuite \\ ViaMura.Web \\ NHibernate.config/>
    !< - <添加键=NHibernateConfigPathVALUE =C:\\ _沙根教授\\ ViaMura \\ CurrencyApp \\在\\ NHibernate.config/> - >
    <添加键=ClientSettingsProvider.ServiceUriVALUE =/>
  < /的appSettings>
  <&是connectionStrings GT;
    <添加名称=的ConnectionString的connectionString =集成安全性= SSPI;坚持安全信息=假;初始目录= Viamura_at;数据源= \\ SQL2008。的providerName =System.Data.SqlClient的/>
    <! - <添加名称=的ConnectionString的connectionString =服务器= 193.37.152.24 \\ SQL2008;用户ID = DBUSER;密码= Lualah8991;数据库= Viamura_at的providerName =System.Data.SqlClient的/> - - >
  < /&是connectionStrings GT;
  < nhibernateSettings>
    <! - 将每一个需要会话工厂名单;事务管理和闭幕会议
          将与开放式会话中视模块进行管理 - >
    < sessionFactories>
      < clearFactories />
      < SessionFactory的名字=WebCrawlerFactoryfactoryConfigPath =D:\\ PROJEKTI \\履带\\ WebCrawlerSuite \\ ViaMura.Web \\ NHibernate.configisTransactional =真/>
      !< - < SessionFactory的名字=WebCrawlerFactoryfactoryConfigPath =C:\\ _沙根教授\\ ViaMura \\ CurrencyApp \\在\\ NHibernate.configisTransactional =真/> - >
    < / sessionFactories>
  < / nhibernateSettings>

如何编程编辑WebCrawlerFactory?我使用


  

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



解决方案

您可以使用以下code:

 私人无效UpdateConfig(字符串键,字符串值,字符串文件名)
    {
        VAR CONFIGFILE = ConfigurationManager.OpenExeConfiguration(文件名);
        configFile.AppSettings.Settings [关键] .value的=价值;        configFile.Save();
    }

其中:filename是完整路径+应用程序的名称(C:\\项目\\ application.exe)

在你的情况下,通过部分改变AppSetting:

  configFile.Sections [nhibernateSettings]

update app.config file programatically with

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

this is my 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>

how can i programatically edit WebCrawlerFactory? I am using

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

解决方案

You can use the following code:

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

        configFile.Save();
    }

Where: fileName is the full path + application name (c:\project\application.exe)

In your case, change the AppSetting by Sections:

 configFile.Sections["nhibernateSettings"]

这篇关于更新ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)编程app.config文件;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆