我正在使用以下代码反序列化xml配置文件:

// Create object by deserializing the given xml document
var serializer = new XmlSerializer(typeof(ConfigurationFile));
var stream = File.Open(path, FileMode.Open, FileAccess.Read);
var configFile = serializer.Deserialize(stream);


在配置中,我有一些浮动数字,定义如下:


  DailyThreshold =“ 41.9”


作为小数点分隔符“。”是否依赖于文化?我想知道如何定义序列化程序用来解析这些数字的文化?

最佳答案

如果同时使用XmlSerializer进行序列化和反序列化,则没有理由担心区域性:序列化器不关心区域性,也不会以任何方式更改序列化的数据。

数据以相同的格式进行串行化,这与任何区域性设置(UI文化,线程区域性或任何类型的文化)均无关。

MSDN文档中的证据

我写这篇文章的时候并没有寻找证据,仅仅是因为XML是一种用于在不同系统和平台之间交换数据的格式,因此序列化格式和反序列化解析在所有系统中都必须相等。

但是,如果您深入研究MSDN文档,则可以阅读以下内容:


  XmlConvert类中找到的大多数方法都用于在字符串和强类型格式之间转换数据。方法是与语言环境无关的。这意味着它们在进行转换时不会考虑任何语言环境设置。


Conversion of XML Data Types上。

关于c# - 如何定义XmlSerializer使用的区域性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21140292/

10-12 00:37