Webservice忽略应用程序的cultureinfo设置

时间:2014-12-08 09:34:16

标签: c# jquery asp.net web-services

我有一个web应用程序,其中包含一些发布到webservice方法的表单。 json-post由jquery $ .ajax方法完成。虽然我的cultureinfo设置为nl-NL,但是当我发布表单的值时,我的webmethod会抛出错误" 10,00不是Decimal的有效值。"具有荷兰符号的日期时间也是如此。

似乎.net序列化程序忽略了全局文化设置。当我改变' 10,00'至' 10.00'该帖子被网络方法接受。

我们已经在这个问题上苦苦挣扎了一段时间,在SO和Google上找不到任何有用的东西。所以对此事的任何帮助都会非常好!

1 个答案:

答案 0 :(得分:1)

所以基本上这是由于代码的和平而完成的:

// No exponent, may or may not have a decimal (if it doesn't it couldn't be parsed into Int32/64)
            decimal dec;
            if (decimal.TryParse(input, NumberStyles.Number, CultureInfo.InvariantCulture, out dec)) {
                // NumberStyles.Number: AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign,
                //                      AllowTrailingSign, AllowDecimalPoint, AllowThousands
                return dec;
            }

参考:http://referencesource.microsoft.com/#System.Web.Extensions/Script/Serialization/JavaScriptObjectDeserializer.cs,111a17298608ded3,references

所以唯一的选择是替换,用。并屈服于英国至高无上的地位。