2012-09-02 30 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));

相关问题