我有以下代码:
<add key="host" value="localhost" />
<add key="port" value="44311" />
var host = WebConfigurationManager.AppSettings["host"];
var portString = WebConfigurationManager.AppSettings["port"];
var port = Int32.Parse(portString); //Exception here
它会产生以下错误:
System.FormatException输入字符串的格式不正确。
我也尝试使用Convert.ToInt32
得到完全相同的结果。奇怪的是,如果我硬编码从WebConfigurationManager.AppSettings
获取的完全相同的值,一切正常。
我很确定我以前使用过这样的代码而且它没有问题。它发生在async
方法中,但由于我可以看到我在调试时有一个值,所以我认为它不相关。从我能看到的一切,我发送了正确的价值。我错过了什么?
答案 0 :(得分:0)
<强>更新强>
@Ben说了什么,现在它有效。删除了该行并手动重新输入。
<强>原始强>
通过设置CultureInfo
让它工作,但我以前从未这样做过。
var sv = new CultureInfo("sv-SE");
var en = new CultureInfo("en-US");
var portString = WebConfigurationManager.AppSettings["port"].ToString(sv); //Works
var portString2 = WebConfigurationManager.AppSettings["port"].ToString(en); //Exception
var portString3 = WebConfigurationManager.AppSettings["port"]; //Exception