2012-09-02 32 views
4

我想在C#中讀取App.config文件中的密鑰,我該怎麼做?從C#中的App.config文件讀取密鑰

我知道我可以利用這一點,

string filetype = ConfigurationSettings.AppSettings("filetype");

,但我不希望使用硬編碼的關鍵。

原因是,在我的項目中有兩個庫有單獨的app.config文件,具有單獨的鍵。我只想通過一個類讀取密鑰,而不用硬編碼它們。

+0

「但我不想給AppSettings硬編碼價值」 - 爲什麼?您唯一的選擇是使用硬編碼來讀取配置。除非我錯了你想要完成的事情。 – millimoose

+0

你總是可以使用一個變量而不是'「filetype」' - 這足夠不爲你硬編碼嗎?你想達到什麼目標? *編輯:軟編碼?你會怎樣稱呼它?* – SimpleVar

+0

我的項目中有兩個庫,它們分別具有獨立的鍵和單獨的app.config。我只想通過一個類讀取這些鍵,這樣我就不需要硬編碼值。 – user1640061

回答

5

您可以在app.config中創建強類型部分,以便您不需要在示例中使用「magic string」鍵(如「filetype」)。

請參閱:How to: Create Custom Configuration Sections Using ConfigurationSection在MSDN上。

創建部分有些涉及,但有一個優秀的Visual Studio插件可以生成設計中的所有代碼和模式。請參閱:CodePlex上的Configuration Section Designer

更新

貌似我誤解了問題的要點。沒有辦法使用放置在類庫中的多個app.config文件或app.config文件(據我所知)。在運行時,類庫所剩下的就是它的DLL;默認情況下,任何app.config文件都不會被msbuild進程複製到應用程序中。

你可能要考慮使用自己的XML配置文件中的每個類庫中,它的屬性設置:

  • Build ActionContent
  • Copy to Output DirectoryCopy Always
+1

這是否也適用於'App.config'? – millimoose

+0

@millimoose是的,app.config也是。 – McGarnagle

0

我解決了這個問題通過使用配置對象作爲,

return Instance.GetC onfigValue(strLst.AppSettings.Settings.AllKeys.ElementAt(0));

相關問題