【问题标题】:ConfigurationManager does not point to correct app.configConfigurationManager 没有指向正确的 app.config
【发布时间】:2013-09-06 16:32:08
【问题描述】:

我正在尝试使用 ConfigurationManager 从项目调用 FileShareAccessLibrary 中获取连接字符串。

这是我为此编写的代码:

ConfigurationManager.ConnectionStrings["FileShareAccessLibrary"].ConnectionString

这是app.Config的内容

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections></configSections>
  <connectionStrings>
    <add name="FileShareAccessLibrary" connectionString="......"
      providerName="System.Data.SqlClient" />
    <add name="FileShareAccessLibrary.Properties.Settings"
      connectionString="..."
      providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

当我运行我的应用程序时,我得到一个 NullReferenceException,因为 ConfigurationManager.ConnectionStrings["FileShareAccessLibrary"] 返回 null。

在调试时我注意到两个连接字符串都没有存储在ConfigurationManager.ConnectionStrings 中,所以我认为ConfigurationManager 指向另一个文件。

在我的项目中,我没有其他 app.config 文件。

我在这里做错了吗? 为什么ConfigurationManager 没有得到我的连接字符串?

【问题讨论】:

  • WebConfigurationManager.ConnectionStrings["FileShareAccessLibrary"].ToString()
  • 这是什么类型的项目?构建项目时输出目录下是否有.config文件?
  • 在你的 标签中添加一个 标签,然后再测试。
  • 您的实际 app.config 文件是否名为“yourapplication.exe.config”? app.config 在编译时由 Visual Studio 复制以匹配可执行文件名称,加上“.config”。
  • 项目为C#类库

标签: c# app-config


【解决方案1】:

如果您的 FileShareAccessLibrary 项目是类库而不是 Windows 窗体应用程序或控制台应用程序,那么您需要将连接字符串(以及应用程序设置,如果有)从 FileShareAccessLibrary 配置文件移动到应用程序的配置文件(s) 引用 FileShareAccessLibrary dll。

【讨论】:

  • 如果我想做一些集成测试(在单独的类库项目中)怎么办?我应该将这些集成测试的连接字符串放在哪里?
猜你喜欢
  • 1970-01-01
  • 2010-10-09
  • 2010-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
相关资源
最近更新 更多