2010-08-17 66 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的配置文件中?如果您使用外部供應商提供的一些工具和庫,則只需執行相同的配置即可。

如果你抽象配置足夠好,你應該沒問題。使用另一個配置文件而不是默認配置文件 - 我認爲這是不好的做法。

相關問題