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

.net 如何防止XElement值使用区域设置格式?,.net,linq,excel,.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 但是,

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

        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时,他看到0123,我看到0.123,这显然是基于我们的区域设置

有没有办法防止这种情况发生?我们的代码正在将此值导出到XML文件,并在Excel中打开它,由于此区域设置问题,这些值不正确。我们每个人都以XML格式创建了一个简单的Excel文件,底层数据是美国的alawys(点对逗号)格式

谢谢

这就是问题所在:

newData.Value = num
XElement.Value
的类型是
String
,因此您正在使用从
Single
String
的“标准”转换-我怀疑如果启用了
选项Strict
选项Explicit
,这将导致编译时失败

为了根据普通LINQ到XML规则设置值,您需要:

newData.ReplaceAll(num)
或仅添加文本值但保留子元素:

newData.Add(num)
(老实说,
newData
从哪里来还不清楚-您显示了
myData
,但没有
newData

这就是问题所在:

newData.Value = num
XElement.Value
的类型是
String
,因此您正在使用从
Single
String
的“标准”转换-我怀疑如果启用了
选项Strict
选项Explicit
,这将导致编译时失败

为了根据普通LINQ到XML规则设置值,您需要:

newData.ReplaceAll(num)
或仅添加文本值但保留子元素:

newData.Add(num)

(老实说,
newData
从哪里来还不清楚-您显示了
myData
,但没有
newData

oops。。。我未能为这篇文章重命名我的一个变量。我把它修好了。。。我未能为这篇文章重命名我的一个变量。我在上面修好了