如何防止使用区域设置格式的XElement值?
我在美国,我的同事在俄罗斯。 我们每个人都使用下面的blurb:
Dim num As Single = 0.123 Dim myData As XElement myData = New XElement(myPrefix + "Data", New XAttribute(myPrefix + "Type", "Number"), New XAttribute("foo", "bar")) myData.Value = num
但是,当我们在Quickwatch中检查myData或将内容保存为XML时,他看到0.123 ,我看到0.123 ,这显然是基于我们的语言环境。
有没有办法来防止这种情况发生? 我们的代码是将这个值导出到一个XML文件,我们打开它在Excel中,由于这个语言环境问题,值是不正确的。 我们每个人都以XML格式创build了一个简单的Excel文件,底层的数据是美国的(点对逗号)格式。
谢谢
这就是问题:
newData.Value = num
XElement.Value
的types是String
,所以你使用从Single
到String
的“标准”转换 – 我怀疑如果你打开了Option Strict
和Option Explicit
,这会导致编译时失败。
为了根据正常的LINQ to XML规则设置值,您需要:
newData.ReplaceAll(num)
或者只是添加一个文本值,但保留子元素:
newData.Add(num)
(目前还不清楚newData
是从哪里来的 – 你已经展示了myData
而不是newData
。)