我想在C#中讀取App.config
文件中的密鑰,我該怎麼做?從C#中的App.config文件讀取密鑰
我知道我可以利用這一點,
string filetype = ConfigurationSettings.AppSettings("filetype");
,但我不希望使用硬編碼的關鍵。
原因是,在我的項目中有兩個庫有單獨的app.config文件,具有單獨的鍵。我只想通過一個類讀取密鑰,而不用硬編碼它們。
我想在C#中讀取App.config
文件中的密鑰,我該怎麼做?從C#中的App.config文件讀取密鑰
我知道我可以利用這一點,
string filetype = ConfigurationSettings.AppSettings("filetype");
,但我不希望使用硬編碼的關鍵。
原因是,在我的項目中有兩個庫有單獨的app.config文件,具有單獨的鍵。我只想通過一個類讀取密鑰,而不用硬編碼它們。
您可以在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 Action
到Content
Copy to Output Directory
到Copy Always
這是否也適用於'App.config'? – millimoose
@millimoose是的,app.config也是。 – McGarnagle
我解決了這個問題通過使用配置對象作爲,
return Instance.GetC onfigValue(strLst.AppSettings.Settings.AllKeys.ElementAt(0));
「但我不想給AppSettings硬編碼價值」 - 爲什麼?您唯一的選擇是使用硬編碼來讀取配置。除非我錯了你想要完成的事情。 – millimoose
你總是可以使用一個變量而不是'「filetype」' - 這足夠不爲你硬編碼嗎?你想達到什麼目標? *編輯:軟編碼?你會怎樣稱呼它?* – SimpleVar
我的項目中有兩個庫,它們分別具有獨立的鍵和單獨的app.config。我只想通過一個類讀取這些鍵,這樣我就不需要硬編碼值。 – user1640061