2010-08-17 69 views
2

可能重复:
Reading dll.config (not app.config!) from a plugin module.如何判断C#使用哪个配置文件?

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

我已经通过this博客,但我觉得这是一个非常肮脏的做法。应该有一个更简单的方法!

让我知道如果这个问题不清楚..

回答

3

我相信.NET将永远载入与应用而不是任何库相关联的app.config文件。有很复杂的方式来指定你自己的配置文件的位置 - 或者只是使用你自己的配置框架,而不是内置的 - 但我不认为你可以问.NET每个DLL加载一个配置文件。

+0

嗯..我刚刚从其他配置文件复制相关的密钥..这里只有2个键,所以它没问题。但是我想知道当按键之间有冲突时有多大的应用程序运行.. – 2010-08-17 07:27:30

+0

@ Raze2dust:新的配置设置风格有单独的配置部分,所以应该没有太大的冲突机会。 – 2010-08-17 07:51:04

+0

谢谢,你能指点我一些资源,我可以学习更多关于使用我自己的配置框架? – 2010-08-17 14:48:34

1

据我所知,你想要将一个app.config集成到你的dll中。检查了这一点:

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

+2

是不是打败了配置文件的对象呢?配置文件的目的是允许配置更改到一个应用程序,而不需要重新编译,甚至在某些情况下甚至在运行时 – fletcher 2010-08-17 07:22:13

+0

是的,但配置文件总是配置一个项目不是几个项目 – MUG4N 2010-08-17 07:29:22

1

可以A的配置的相关部分复制进入B的配置文件,它会正常工作,但它是一个有点乏味,至少可以说。我想你可以用自定义工具自动化它。

2

为什么不把所有必要的设置都放到项目B的配置文件中?如果您使用外部供应商提供的一些工具和库,则只需执行相同的配置即可。

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

相关问题