如何更改RestSharp params的文化信息

时间:2014-01-18 14:17:19

标签: c# windows-phone globalization restsharp

我有一些double类型的变量,我希望将它作为GET参数传递给我的asp.net mvc客户端。但是,例如使用德语时,50.1将以50,1发送。

虽然在使用AddParameter方法添加参数时我可以轻松使用ToString,但是当我依赖AddObject时就不那么容易了。

我使用以下代码:

var client = new RestClient(apiBaseUrl);

var request = new RestRequest(api);
request.RequestFormat = DataFormat.Json;
request.AddObject(data);

//...

我在哪里可以更改RestSharp使用的CultureInfo

1 个答案:

答案 0 :(得分:3)

看起来他们暗中使用了当前的文化:

https://github.com/restsharp/RestSharp/blob/master/RestSharp/RestRequest.cs#L286

除非你想修改它们的源代码,否则可以使用以下命令强制当前线程的文化:

System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

然后在通话结束后再将其切换回来。


另一方面,看起来AddObject(...)方法使用非编译反射,因此如果您使用AddParameter(...)添加对象的参数,它应该更快。