在多个项目中加载app.config会获得nullpointer异常

时间:2014-01-15 16:43:17

标签: c# app-config

我有一个项目解决方案: 公用事业 MainProject

MainProject使用Utilities,MainProject是我正在使用的主要dll。

我为每个项目都有一个app.config。特别是,我的Utilities项目会自动将其app.config放在Utilities \ bin \ debug \文件夹中。在我的代码中,我试图从以下位置访问它:

private static Configuration UConfiguration = ConfigurationManager.OpenExeConfiguration(new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath);

private static Configuration UConfiguration = ConfigurationManager.OpenExeConfiguration(typeof(UtilitiesConfiguration).Assembly.Location);

但显然当我尝试访问配置时,它们都会给出相同的空指针异常错误。

当我打印出配置的FilePath时,它显示它正在尝试从MainProject \ bin \ debug加载此配置,其中所有dll最终都会进入,但是Utilities的app.config显然没有被复制。

解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

主application.config是应用程序从中读取配置的地方。不看其他配置。

你想做什么,也许有一个更好的解决方案,使用由ConfigurationElements和自定义部分组成的类

如果您从utilities.config文件中读取实用程序应用程序,那么稍后当另一个开发人员尝试编辑配置或需要调试时它们会引起混淆,并且它们只会查看主应用程序配置。它只是我的经验中的标准