app.config 从其他节点读取密钥连接字符串的值
本文关键字:连接 字符串 密钥 读取 config 其他 节点 app | 更新日期: 2023-09-27 18:30:44
在stackoverflow上有几个关于如何从代码或使用Windows路径变量获取app.config值的问题。
- 但是我想知道我是否可以在 app.config xml 文件中使用已经定义的密钥?
- 目的是避免多次输入连接字符串。
下面可以看到我的连接字符串"con_str":
<appSettings>
<add key="con_str" value="myDatabaseConnectionString"/>
</appSettings>
....
<log4net>
<appender name="AdoNetExceptionAppender"
type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<threshold value="FATAL"/>
<connectionType ... />
<connectionString
value= .... <--- How to use value from 'con_str' above?
/>
<commandText ... />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
</appender>
</log4net>
有没有办法从 app.config 中的appSettings
节点读取键con_str
的值?
用户 chadiusvt 评论后更新 1
我像这样更改了我的应用程序.config:
<appSettings>
<add key="con_strOrig" value="foo" />
</appSettings>
<connectionStrings>
<add name="connStr" connectionString="foo" />
</connectionStrings>
...
<log4net>
<appender name="AdoNetExceptionAppender"
type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<threshold value="FATAL"/>
<connectionType ... />
<connectionString value="connStr" />
...
正如您在上次更新中看到的那样,可以 引用connectionStrings
.但是由于在我的代码中我总是使用 appSettings 我必须在很多地方更改我的代码。有没有办法让<appSettings>
指向节点<connectionsStrings>
的connStr
键?
更新 2 以解决答案
我相信你误会了。我正在寻找一种在 xml 文件中引用另一个变量的方法。
只需使用这一行:
System.Configuration.ConfigurationManager.AppSettings["con_str"]
据我所知,不可能为部分名称分配值。
我有一些替代解决方案来完成您的任务。
在程序中动态地为值分配名称.CS
string connectionString = ConfigurationManager
.ConnectionStrings["connStr"].ConnectionString;
ConfigurationManager.AppSettings
.Set("con_strOrig", connectionString);