我在app.config中为keyUri
的密钥提取值并查看此语法used by MS,以及在执行连接字符串时也使用了此语法。在下面的代码段(已添加System.Configuration
,并且已添加DLL)C#中,我收到此错误:
C#
/// Error on the .Value
string keyUri = ConfigurationManager.AppSettings["keyUri"].Value;
的app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<appSettings>
<add key="keyUri" value="test" />
</appSettings>
</configuration>
根据代码,它应该在<appSettings>
内查看,并返回键keyUri
的值。相反,我得到一个错误说明,
&#34;字符串不包含值的定义&#34;
答案 0 :(得分:1)
ConfigurationManager.AppSettings
将数据存储为KeyValuePair,因此通过指定密钥,您将获得该值。这样就好了:
string keyUri = ConfigurationManager.AppSettings["keyUri"]
这意味着ConfigurationManager.AppSettings["keyUri"]
会返回一个字符串,当你将.Value
追加到这一行时,你要求编译器获取字符串的value属性,因此它说“String不包含值“的定义。通过使用上面的代码,您将在字符串变量keyUri
中获得所需的值。
答案 1 :(得分:1)
string keyUri = ConfigurationManager.AppSettings["keyUri"];
这会给你结果
答案 2 :(得分:1)
ConfigurationManager.AppSettings
是NameValueCollection
。当您访问using the index时,它会返回string
。 string
没有属性Value
,在这种情况下,返回的字符串是的值。
所以只需省略.Value
:
string keyUri = ConfigurationManager.AppSettings["keyUri"];
答案 3 :(得分:0)
很明显,其他人已经提到过没有属性Value
。所以你应该像
string keyUri = ConfigurationManager.AppSettings["keyUri"];
但我认为您打算调用以下GetValues()
方法,因为ConfigurationManager.AppSettings
会返回NameValueCollection
string keyUri = ConfigurationManager.AppSettings.GetValues("keyUri");