gpt4 book ai didi

fitnesse - ConfigurationSettings.AppSettings 为空,抛出 null 异常

转载 作者:行者123 更新时间:2023-12-05 08:44:47 29 4
gpt4 key购买 nike

我有这样一个类:

public class RxNormFolderMgr
{
// properties
public string RxNormFolder { get { return ConfigurationSettings.AppSettings["rootFolder"].ToString(); } }
}

当我尝试这样使用它时:

public class TestRxNormFolderManager : ColumnFixture
{
public string RxNormFolder()
{
RxNormFolderMgr folderMgr = new RxNormFolderMgr();
return folderMgr.RxNormFolder;
}
}

我收到错误消息:“System.Reflection.TargetInvocationException:调用目标已抛出异常。---> System.NullReferenceException:未将对象引用设置为对象的实例。” AppSettings 的 AllKeys 属性是一个长度为零的数组,我期望长度为 1。

我在项目中的 app.config 文件如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="rootFolder" value ="C:\RxNorm" />
<!-- Root folder must not end with slash. -->
</appSettings>
</configuration>

我知道 ConfigurationSettings.AppSettings 应该已过时,我应该使用 ConfigurationManager.AppSettings,但我什至无法编译它。我确实在项目中引用了 System.configuration(c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.configuration.dll 在我的机器上)并在我的代码顶部使用语句。

我正在使用 Fitnesse 来测试代码,那时我遇到了错误。据我了解,我还应该将 app.config 文件的副本放在我已完成的测试装置项目的 Bin>Debug 文件夹中。所以,我不知道为什么我仍然收到此错误。

请帮忙。

最佳答案

另外:尝试使用 ConfigurationManager 类而不是“ConfigurationSettings”:

首先检查 NOT NULL:

public class RxNormFolderMgr
{
// properties
public string RxNormFolder
{
get
{
if(ConfigurationManager.AppSettings["rootFolder"] != null)
{
return ConfigurationManager.AppSettings["rootFolder"].ToString();
}
return string.Empty;
}
}
}

这是在类库程序集中吗?那些从不使用自己的 app.config - 而是使用主机应用程序的 app.config(使用类库的应用程序)。

马克

关于fitnesse - ConfigurationSettings.AppSettings 为空,抛出 null 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1602099/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com