Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf WebInvoke/DataContractJsonSerializer和#x27;16276';无法解析为';双倍';_Wcf_Serialization_Datacontractserializer_Webinvoke - Fatal编程技术网

Wcf WebInvoke/DataContractJsonSerializer和#x27;16276';无法解析为';双倍';

Wcf WebInvoke/DataContractJsonSerializer和#x27;16276';无法解析为';双倍';,wcf,serialization,datacontractserializer,webinvoke,Wcf,Serialization,Datacontractserializer,Webinvoke,我正在使用WCFWebInvokeAttribute进行声明性JSON请求(DataContractJsonSerializer), 使用基于DataContractAttribute/DataMemberAttribute的序列化 我使用的服务支持返回包含基于不同区域性的数据的JSON。 默认情况下,此服务使用en-US区域性设置,这意味着小数分隔符将为“” 我有一个类具有System.Double属性。 如果我使用使用“,”作为十进制分隔符的区域性请求数据,则在解析系统时,尝试反序列化此属性

我正在使用WCF
WebInvokeAttribute
进行声明性JSON请求(
DataContractJsonSerializer
), 使用基于
DataContractAttribute
/
DataMemberAttribute
的序列化

我使用的服务支持返回包含基于不同区域性的数据的JSON。 默认情况下,此服务使用en-US区域性设置,这意味着小数分隔符将为“”

我有一个类具有
System.Double
属性。 如果我使用使用“,”作为十进制分隔符的区域性请求数据,则在解析
系统时,尝试反序列化此属性的值时,我会得到一个
序列化异常。Double

“反序列化XXX类型的对象时出错。无法将值'16276'分析为'double'类型。”

这当然是因为在解析Double时使用了不变的区域性。 我希望在当前线程上设置正确的区域性可以解决这个问题,但是没有

因此,对于不使用“.”作为小数分隔符的任何区域性,服务都将中断

我会感激你的帮助

谢谢

根据,数字的格式应使用句点。换句话说,问题不在反序列化程序部分,而在序列化程序部分


如果您必须使用逗号分隔符,那么我建议您使用属性类型的字符串设置约定,并在类上提供一个未序列化的附加属性,以将字符串转换为十进制(这样您就可以传递任何需要传递的区域性).

请更好地解释为什么文化是您服务中的一个因素,以及文化与其他服务的区别。如果这个问题很常见的话,我本应该早就听说过这个问题。这是服务客户端:这个组件的用户首先发现了这个bug,阅读底部的Derserialization错误线程。谢谢