如何定义XmlSerializer使用的文化

我使用以下代码反序列化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类中的大多数方法用于在字符串和强类型格式之间转换数据。 方法与语言环境无关。 这意味着他们在进行转换时不会考虑任何区域设置。

关于XML数据类型的转换 。