0

我在美国,我的同事在俄罗斯。我们每个人都使用以下简介:

        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 格式的简单 Excel 文件,基础数据是美国(点与逗号)格式的 alawys。

谢谢

4

1 回答 1

3

这就是问题:

newData.Value = num

的类型XElement.ValueString,所以你正在使用从Singleto的“标准”转换String- 我怀疑如果你已经打开,这会导致编译时失败Option StrictOption Explicit

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

newData.ReplaceAll(num)

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

newData.Add(num)

newData(说实话,不清楚从哪里来 - 你已经展示了myData但没有newData。)

于 2012-08-28T16:52:22.887 回答