如何检查 appSettings 键是否存在?
如何检查应用程序设置是否可用?
即 app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key ="someKey" value="someValue"/>
</appSettings>
</configuration>
和代码文件中
if (ConfigurationManager.AppSettings.ContainsKey("someKey"))
{
// Do Something
}else{
// Do Something Else
}
How do I check to see if an Application Setting is available?
i.e. app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key ="someKey" value="someValue"/>
</appSettings>
</configuration>
and in the codefile
if (ConfigurationManager.AppSettings.ContainsKey("someKey"))
{
// Do Something
}else{
// Do Something Else
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
MSDN:Configuration Manager.AppSettings
或
MSDN: Configuration Manager.AppSettings
or
通过泛型和 LINQ 安全返回默认值。
使用方法如下:
Safely returned default value via generics and LINQ.
Used as follows:
如果您要查找的键不存在于配置文件中,您将无法使用 .ToString() 将其转换为字符串,因为该值将为空,并且您将收到“未设置对象引用”到对象的实例”错误。在尝试获取字符串表示形式之前,最好先查看该值是否存在。
或者,正如 Code Monkey 建议的那样:
If the key you are looking for isn't present in the config file, you won't be able to convert it to a string with .ToString() because the value will be null and you'll get an "Object reference not set to an instance of an object" error. It's best to first see if the value exists before trying to get the string representation.
Or, as Code Monkey suggested:
上面的选项为所有方式提供了灵活性,如果您知道密钥类型,请尝试解析它们
bool.TryParse(ConfigurationManager.AppSettings["myKey"], out myvariable);
Upper options gives flexible to all manner, if you know key type try parsing them
bool.TryParse(ConfigurationManager.AppSettings["myKey"], out myvariable);
我认为 LINQ 表达式可能是最好的:
I think the LINQ expression may be best:
我喜欢 codebender 的答案,但需要它在 C++/CLI 中工作。这就是我最终得到的结果。没有使用 LINQ,但可以使用。
I liked codebender's answer, but needed it to work in C++/CLI. This is what I ended up with. There's no LINQ usage, but works.
在 TryParse 中使用新的 C# 语法对我来说效果很好:
Using the new c# syntax with TryParse worked well for me: