如何防止XElement值使用区域设置格式?

时间:2012-08-28 16:45:58

标签: .net linq excel

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

        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(点对逗号)格式。

由于

1 个答案:

答案 0 :(得分:3)

这是问题所在:

newData.Value = num

XElement.Value的类型为String,因此您正在使用从SingleString的“标准”转换 - 我怀疑您是否{{1} }和Option Strict打开,这会导致编译时失败。

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

Option Explicit

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

newData.ReplaceAll(num)

(目前尚不清楚newData.Add(num) 来自诚实的地方 - 您已展示newData但未展示myData。)