更新ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)编程app.config文件; [英] update app.config file programatically with ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
问题描述
与编程更新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屋!