如何设置RestSharp的CultureInfo用于请求序列化?

时间:2013-12-23 13:37:32

标签: c# serialization restsharp

我有一个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;用于序列化请求参数的文化代码?

1 个答案:

答案 0 :(得分:2)

该项目的作者14天前解决了这个问题。他updated XmlSerializer.cs并添加了SerializeNumber()方法。它现在使用:

...
return (Convert.ToDouble(number, CultureInfo.InvariantCulture).
    ToString("r", CultureInfo.InvariantCulture));

哪个应该解决您的问题,InvariantCulture使用句点格式化浮点值。

从Github上拉下项目的最后一次更新。