c# - app.config 从其他节点读取关键连接字符串的值

标签 c# .net winforms app-config

在 stackoverflow 上有几个关于 get app.config values from code 的问题。或 using windows path variables .

  • 但我想知道我是否可以使用 app.config xml 文件中已经定义的 key ?
  • 目的是避免多次输入连接字符串。

下面你可以看到我的连接字符串'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>

有没有办法读取键con_str的值?来自 appSettings app.config 中的节点?

用户 chadiusvt 发表评论后更新 1

我这样更改了我的 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来自节点的 key <connectionsStrings>

更新 2 以解决问题

我相信你误会了。我正在寻找一种在 xml 文件中引用另一个 var 的方法。

最佳答案

只需使用这一行:

System.Configuration.ConfigurationManager.AppSettings["con_str"]

关于c# - app.config 从其他节点读取关键连接字符串的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18699234/

相关文章:

c# - Dapper 多映射 - 集合为空

c# - 从 SQL Server 2008 到 PictureBox 的图像加载失败

c# - 为什么大多数时候只能向前遍历?

c# - 如何在使用第二种形式时更改第一种形式的属性?

c# - ADO.NET 从 datagrid1 中选择一行以显示 datagrid2 中的行

c# - 数据表访问C#

C# MEF 与静态类的用法

c# - 如何通过 C# 中的异常处理理解 "using"的 JITed 代码

c# - 如何按字母顺序对数据网格中的列标题进行排序? C#

c# - Fiddler 未检测到来自 C# 控制台应用程序的 soap 请求