我有一个RestRequest实例,其中有一个带有double值的参数,当参数有任何十进制值时,如1000.11,请求失败,"请求无效"。
这是因为我们的Web API期望使用en-US文化代码格式的值来反序列化,也就是&#34; 1000.11&#34;,但RestSharp正在发送&#34; 1000,11&#34;。< / p>
我知道我可以更改客户端当前线程的CultureInfo来解决这个问题,但我想要一个更好的解决方案。
问题是:有任何方法可以将RestSharp(RestClient或RestRequest)配置为仅使用&#34; en-US&#34;用于序列化请求参数的文化代码?
答案 0 :(得分:2)
该项目的作者14天前解决了这个问题。他updated XmlSerializer.cs并添加了SerializeNumber()方法。它现在使用:
...
return (Convert.ToDouble(number, CultureInfo.InvariantCulture).
ToString("r", CultureInfo.InvariantCulture));
哪个应该解决您的问题,InvariantCulture使用句点格式化浮点值。
从Github上拉下项目的最后一次更新。