如何防止使用区域设置格式的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 ,所以你使用从SingleString的“标准”转换 – 我怀疑如果你打开了Option StrictOption Explicit ,这会导致编译时失败。

为了根据正常的LINQ to XML规则设置值,您需要:

 newData.ReplaceAll(num) 

或者只是添加一个文本值,但保留子元素:

 newData.Add(num) 

(目前还不清楚newData是从哪里来的 – 你已经展示了myData而不是newData 。)