关于stackoverflow,有关get app.config values from code或using windows path variables的方式的几个问题。
下面你可以看到我的连接字符串'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中的con_str
节点读取密钥appSettings
的值?
我改变了我的app.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>
指向节点connStr
中的<connectionsStrings>
密钥?
我相信你误解了。我正在寻找一种方法来引用xml文件中的另一个var。
答案 0 :(得分:3)
只需使用此行:
System.Configuration.ConfigurationManager.AppSettings["con_str"]
答案 1 :(得分:1)
据我所知,不可能为部分名称指定值。
我有一些替代解决方案来完成你的任务。
在Program.CS
中动态地将名称分配给值string connectionString = ConfigurationManager
.ConnectionStrings["connStr"].ConnectionString;
ConfigurationManager.AppSettings
.Set("con_strOrig", connectionString);