Object reference not set to an instance of an object

1.Sistuation

当在Unit Testing中使用app.config文件,调用类中的方法可能会出现如下的错误
System.NullReferenceException: Object reference not set to an instance of an object.
这是因为在Unit Testing项目中,虽然引用了要被测试项目类的Dll,但是并没有对app.config文件进行任何引用

Solution:

1. 将被测试项目中的app.config文件copy一份添加到Unit Testing项目中
2. 将被测试项目中的app.config文件的Copy to Output Directory 设置为Copy always
3. 对被测试项目的app.config文件中的节点进行修改并且进行引用,部分代码如下(这种方法同样适用于一个app.config文件被多个项目使用)
App.config

 <configSections>
      <section name="connection" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>     
    </configSections>
  <connection>
    <add key="DHP" value="Data Source=WXPFSER12-LAB1;Initial Catalog=PlatformDB;Integrated Security=True" />
  </connection>

Reference Code

string strConfigPath = @"D:\Sample\VSTS\Unit Test\Call Class\CallClass\ConsoleApp\App.config";
            System.Configuration.ConfigurationFileMap fileMap = new ConfigurationFileMap(strConfigPath); //Path to your config file
            System.Configuration.Configuration configuration = System.Configuration.ConfigurationManager.OpenMappedMachineConfiguration(fileMap);
            var SettingsSection = configuration.GetSection("connection") as AppSettingsSection;
            string connection = SettingsSection.Settings["DHP"].Value;


Reference

ConfigurationProperty is inaccessible due to its protection level

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值