Feo*_*akt 8 c# xml-serialization
当我写作
var d = 12.34D;
d.ToString();
Run Code Online (Sandbox Code Playgroud)
它给出了"12,34",但是当我用双字段序列化对象时,它给出了
var d = 12.34D;
d.ToString();
Run Code Online (Sandbox Code Playgroud)
这是因为XmlSerializer使用了一些特定的格式/文化?到底是什么?我查看了Double的源代码,但没有看到IXmlSerializable的实现.谢谢.
用于转换值的XmlSerializerWriter用途XmlConvert.ToString.
相关部分从类是这个:
return value.ToString("R", NumberFormatInfo.InvariantInfo);
Run Code Online (Sandbox Code Playgroud)
所以它使用了不变文化,它恰好输出符合XML RFC的字符串(所以作为小数分隔符的句号).
格式说明"R"被记录在这里:
往返("R")格式说明符尝试确保将转换为字符串的数值解析回相同的数值.仅对Single,Double和BigInteger类型支持此格式.
这意味着double在反序列化字符串值时,另一端将产生相同的结果.
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |