如何告诉C#使用哪个配置文件?

时间:2010-08-17 07:10:11

标签: c# .net web-config app-config

  

可能重复:
  Reading dll.config (not app.config!) from a plugin module.

我有两个不同的项目,比如A和B.我需要在B中使用一些A类。所以我在B中添加了对A的引用。当我尝试运行应用程序时,我声明将Object引用设置为null异常。经过调查,我发现当我从B访问A类时,控件转到项目A,但C#仍然使用项目B的配置文件,而不是使用项目A的配置文件。我该如何解决这个问题?如何在dll中“包含”A的配置文件?

我已经浏览了this博客,但我觉得这是一种非常肮脏的方式。应该有一个更简单的方法!

如果问题不清楚,请告诉我。

4 个答案:

答案 0 :(得分:3)

我相信.NET将始终加载与应用程序关联的app.config文件,而不是任何库。有一些复杂的方法可以为配置文件指定自己的位置 - 或者只使用您自己的配置框架而不是内置配置框架 - 但我认为您不能让.NET为每个DLL加载配置文件。

答案 1 :(得分:2)

为什么不将所有必要的设置都放入项目B的配置文件中?如果您使用来自外部供应商的某些工具和库,您只需执行相同的操作即可配置它。

如果您将配置抽象得足够好,那么您应该没问题。使用另一个配置文件而不是默认配置文件 - 我会认为这是不好的做法。

答案 2 :(得分:1)

据我了解,您希望将app.config集成到您的dll中。看看这个:

How do you load the app.config file into a DLL

答案 3 :(得分:1)

您可以将A配置的相关部分复制到B配置文件中,它将正常工作,但至少可以说有点乏味。我想你可以使用自定义工具自动化它。