我有一个正在为其编写单元测试的库。该库由两个应用程序使用:一个是 Windows 服务,另一个是执行一些注册表读写操作的命令行应用程序。每个都有一个略有不同的 App.config 文件,该文件在启动时从库中加载。例如:
public RetentionService()
{
SettingHive = new Hive();
TimingService = new RetentionTimingService(SettingHive);
AppSettingsReader asr = new AppSettingsReader();
object appsListObj = asr.GetValue(@"blocking-process-list", Type.GetType(@"System.String"));
string appsList = appsListObj.ToString();
_BlockingAppNames = RetentionService.ListFromList(appsList);
string targetList = asr.GetValue(@"target-files", Type.GetType(@"System.String")).ToString();
_TargetLogs = RetentionService.ListFromList(targetList);
}
当我尝试从单元测试中使用这个库时,它无法加载,因为加载库的应用程序(可能是 nunit)没有带有适当键的 *.exe.config 文件。
有什么更好的方法来做到这一点?我希望库在生产中从每个应用程序的 *.exe.config 加载设置,但如果运行单元测试,则从第三个位置加载。