【发布时间】:2017-08-18 05:47:39
【问题描述】:
我想在类库中进行单元测试,我需要与我的主 asp.net 项目的 web.config 中相同的配置设置。因此,我需要将一些 web.config 设置复制到我的类库中。
我已经通过类库的项目属性设置选项卡添加了设置。
然后一个app.config文件会自动添加到项目中:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="ExternalServices.CPR.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<ExternalServices.CPR.Properties.Settings>
<setting name="CprProdHostName" serializeAs="String">
<value>direkte.cpr.dk</value>
</setting>
问题 1. 将一些设置从主 web.config 共享/复制到需要单独运行单元测试但具有相同配置的类库的“最佳实践”方式是什么?
问题 2。我想按名称读取设置。 我尝试使用 ConfigurationManager.AppSettings["CprProdHostName"]; 阅读(使用 System.Configuration;)但它不起作用,只返回 null?
问题 3. app.config 文件的用途是什么?因为没有构建操作集并且文件没有复制到输出,所以默认情况下它永远不会在任何地方可见。这意味着我无法在运行时更改这些设置。这很奇怪,对吧?
【问题讨论】:
标签: asp.net asp.net-mvc unit-testing configuration web-config