私はこのようなクラスを持っています:
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フォルダーに配置する必要があることを理解しています。だから、なぜ私はまだこのエラーが発生しているのかわかりません。
助けてください。