ConfigurationManager ConnectionString抛出错误并返回null

aza*_*arp 1 c#

我完全惊讶于为什么我的一个单元测试失败了.这是一个简单的测试,看看是否返回了正确的连接字符串.我的App.config看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
   <system.web>
      <compilation defaultLanguage="c#" debug="true" />
   </system.web>
   <connectionStrings>
      <add name="DbConnectionString" connectionString="Test_HighOnCoding_Db" />
   </connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

这是我的简单单元测试,总是抛出null异常:

[TestFixture]
public class when_retrieving_database_name_from_config
{
    [Test]
    public void should_get_the_correct_database_name()
    {
       var dbName = ConfigurationManager.ConnectionStrings["DbConnectionString"].ConnectionString;

       // dbName is always null 

       Assert.AreEqual("Test_HighOnCoding_Db",dbName); 
    }
 }
Run Code Online (Sandbox Code Playgroud)

And*_*ber 5

我的原始答案不适用于您的评论.

那么我建议检查一件事; 您的app.config文件是否被移动到您的程序目录中,并被重命名为与程序相同,并添加了.config?

那么,program.exeprogram.exe.config配置文件吗?`

看起来你在这里有一个Web应用程序; 如果是这样,您的配置文件应该是web.config而不是app.config.然后,你应该使用WebConfigurationManagerSystem.Web.Configuration命名空间.