Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C中的App.config文件中读取密钥#_C#_.net_App Config - Fatal编程技术网

C# 从C中的App.config文件中读取密钥#

C# 从C中的App.config文件中读取密钥#,c#,.net,app-config,C#,.net,App Config,我想从C#中的App.config文件中读取一个密钥,我该怎么做 我知道我可以用这个 string filetype=ConfigurationSettings.AppSettings(“filetype”) 但我不想用硬编码的钥匙 原因是,在我的项目中,有两个库具有单独的app.config文件和单独的键。我只想通过一个类读取密钥,而不需要硬编码。您可以在app.config中创建强类型部分,这样您就不需要在示例中使用“魔法字符串”密钥,如“文件类型” 请参阅:关于MSDN 创建这些部分有点复

我想从C#中的
App.config
文件中读取一个密钥,我该怎么做

我知道我可以用这个

string filetype=ConfigurationSettings.AppSettings(“filetype”)

但我不想用硬编码的钥匙


原因是,在我的项目中,有两个库具有单独的app.config文件和单独的键。我只想通过一个类读取密钥,而不需要硬编码。

您可以在app.config中创建强类型部分,这样您就不需要在示例中使用“魔法字符串”密钥,如“文件类型”

请参阅:关于MSDN

创建这些部分有点复杂,但是有一个优秀的VisualStudio插件可以从您的设计中生成所有代码和模式。请参阅:关于CodePlex

更新

看来我误解了问题的重点。无法使用多个app.config文件,也无法使用放置在类库中的app.config文件(据我所知)。在运行时,类库剩下的就是它的DLL;默认情况下,msbuild进程不会将任何app.config文件复制到应用程序

您可能想考虑在每个类库中使用自己的XML配置文件,并设置其属性:

  • 构建操作
    内容
  • 复制到输出目录
    始终复制

我使用配置对象解决了这个问题


返回Instance.GetConfigValue(strLst.AppSettings.Settings.AllKeys.ElementAt(0))

“但我不想给AppSettings硬编码的值”-为什么?您唯一的其他选择是使用硬编码代码读取配置。除非我对您试图实现的目标理解错误。您可以始终使用变量而不是
“filetype”
-这对您来说还不够硬编码吗?你到底想达到什么目的?编辑:软编码?你会怎么称呼它?这意味着在我的项目中有两个库,分别具有app.config和单独的键。我只想通过一个类来阅读这些键,这样我就不需要硬编码的值了。请看我更新的答案。没有办法使用单独的app.config文件——我能想到的最好方法是将您自己的XML文件添加到项目中并编写代码来解析它。这是否也适用于
app.config
?@millimoose是的,app.config也是。