序列化\反序列化 - 我应该使用不变的文化信息还是保留当前的文化信息

Posted

技术标签:

【中文标题】序列化\\反序列化 - 我应该使用不变的文化信息还是保留当前的文化信息【英文标题】:Serialization\De-serialization - Should I use Invariant culture info or rather persist the current culture info序列化\反序列化 - 我应该使用不变的文化信息还是保留当前的文化信息 【发布时间】:2014-10-26 12:01:03 【问题描述】:

在我一头扎进代码之前,我是来咨询一些建议的。

在我正在处理的应用程序上,我遇到了“,”(逗号)与“。” (点)小数分隔符的差异。

当我坚持到一个文件、更改区域设置并重新打开该文件时,我在反序列化时遇到了异常。

我的问题如下。

如果我在发生序列化/反序列化的任何地方都使用不变的文化信息,我会再次遇到这个问题吗?在我看来,这应该适用于任何地方,即使区域设置发生变化。我的假设是否正确?

另一个不理想的想法是将当前文化信息与保存的文件关联\持久化。不太好做。

我欢迎对此问题提出任何建议和见解。如果有什么不清楚的地方欢迎评论。

提前感谢您的所有帮助!

【问题讨论】:

【参考方案1】:

您应该在坚持到后端的任何时候使用不变文化。文化特定格式应该只直接呈现给用户。 Windows 版本之间的数据更改,您将不会受到与反序列化相关的异常的保护,除非您使用不会更改的标准格式。

【讨论】:

以上是关于序列化\反序列化 - 我应该使用不变的文化信息还是保留当前的文化信息的主要内容,如果未能解决你的问题,请参考以下文章

什么是不变文化?

XAML序列化 - 需要指定属性

如何使用护照调用反序列化用户

如何在数字反序列化中更改默认类型

序列化

一旦用户登录,我应该使用类实例(序列化)还是 Singleton 来存储 userInfo