c# - > WebConfigurationManager - > Int32.Parse - >输入字符串的格式不正确

时间:2018-01-26 10:52:11

标签: c#

我有以下代码:

<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获取的完全相同的值,一切正常。

enter image description here

我很确定我以前使用过这样的代码而且它没有问题。它发生在async方法中,但由于我可以看到我在调试时有一个值,所以我认为它不相关。从我能看到的一切,我发送了正确的价值。我错过了什么?

1 个答案:

答案 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