.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。。。我未能为这篇文章重命名我的一个变量。我把它修好了。。。我未能为这篇文章重命名我的一个变量。我在上面修好了