不同的计算机系统可能有着不同的CultureInfo,例如在中文环境下日期通常这样显示03/30/2016,而在有的操作系统下它可能是这样的30.3.2016。

  这样的话带来一个问题,例如在中文环境下序列化了一个日期类,那么到了非中文环境下是否还能反序列回来呢?

其实这是不用担心的,C#中XML序列化是与CultureInfo无关的。我提出这一观点有两点理由:

  1.https://social.msdn.microsoft.com/Forums/windowsdesktop/zh-CN/0df9998e-8bee-4eed-93dd-fe627509b215/xmlserializerthreadculture

  其中有人回答了 原文在这里

  http://weblogs.asp.net/psteele/xmlserializer-ignores-culture

  大意就是有个higher(可能是牛B的)的人回答了xmlserializer-ignores-culture

  2.自己测试,上测试程序。

 1  public class TestClass
 2     {
 3         public DateTime time;
 4     }
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             TestClass MyClass = new TestClass();
10             MyClass.time = new DateTime(2005, 1, 12);
11             //var currentCulture = CultureInfo.CurrentCulture;
12             var currentCulture = Thread.CurrentThread.CurrentCulture;
13             Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
14             XmlSerializer serializer = new XmlSerializer(typeof(TestClass));
15
16             serializer.Serialize(Console.Out, MyClass);
17
18             Console.WriteLine(MyClass.time.ToShortDateString());
19
20             CultureInfo cul = CultureInfo.GetCultureInfo("de-de");
21             //MyClass.time = new DateTime(2005,1,12);
22             Thread.CurrentThread.CurrentCulture = cul;
23             serializer.Serialize(Console.Out, MyClass);
24             Console.WriteLine(MyClass.time.ToShortDateString());
25             Console.Read();
26
27         }
28     }

View Code

  测试在不同的culture中序列化时间,可以发现序列化的结果是一致的,ConsoleWrite的结果是不一致的。

  So,放心使用XML序列化。

题外话:有时候系统中的类无法序列化,不知伙伴们如何解决。我采用了如下的方法

http://blog.163.com/very_apple/blog/static/27759236201463035249202/

  采用反射获得。

  大家还有什么好方法 说出来分享一下啦~

转载于:https://www.cnblogs.com/ppzbty/p/5335777.html

关于XML序列化与CultureInfo相关推荐

  1. 利用.NET的XML序列化解决系统配置问题

    作者:未知  请作者速与本人联系  出自: http://blog.csdn.net/ycl111/ 在Web系统开发中,我们经常需要读取和设置一些系统配置项,常见的例如数据库连接字符串.上传路径等等 ...

  2. c语言xml序列化,C# XML和实体类之间相互转换(序列化和反序列化)

    我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改. using System; using System.Collections.Ge ...

  3. XML序列化以及新增节点XMLHelper

    介绍利用XMLHelper类实现XML的新建以及反序列化类的操作,XMLHelper见最底部 1.XML新增 document = XmlHelper.CreateXmlDocument(" ...

  4. Java对象XML序列化框架-Simple2.0

    Java对象XML序列化框架-Simple2.0 Simple是一个XML序列化框架,一个Java 版本宽容的序列化框架,能够快速在Java 平台上开发XML.支持通过annotations完全配置化 ...

  5. XML序列化和反序列化(C#)

    主要参考资料: http://www.codeproject.com/Articles/483055/XML-Serialization-and-Deserialization-Part-1 http ...

  6. 开心网外挂开发之 XML序列化于反序列化

    通过昨天的文章我们已经了解了开发一个开心网的外挂所需要的最基本的东本,接下来的工作可以说基本上就上围绕这个基础来进行的,我写这一系列文章主要的目地不仅仅是为了让大家了解怎么开发开心网外挂,最主要的目过 ...

  7. 【Groovy】xml 序列化 ( 使用 MarkupBuilder 生成 xml 数据 | 标签闭包下创建子标签 | 使用 MarkupBuilderHelper 添加 xml 注释 )

    文章目录 一.标签闭包下创建子标签 二.使用 MarkupBuilderHelper 添加 xml 注释 三.完整代码示例 一.标签闭包下创建子标签 在上一篇博客 [Groovy]xml 序列化 ( ...

  8. XML 序列化 【译】

    原文连接:http://www.diranieh.com/NETSerialization/XMLSerialization.htm 总结: 介绍 XML 序列化示例 XML Schema 定义文档 ...

  9. XML 序列化与反序列化

    XML序列化与反序列化 1.将一个类转化为XML文件 /// <summary>/// 对象序列化成XML文件/// </summary>/// <param name= ...

最新文章

  1. win10进不了微软服务器,Microsoft帐户无法登录怎么办 Win10微软账户登录不上解决方法...
  2. build unity 丢失_Unity Build PS4文件时的一些坑
  3. c++内存管理-内存顺序
  4. PHP实现http与https转化
  5. es6 async函数的异步迭代器
  6. scala基础之函数和闭包
  7. MSSQL 'CREATE/ALTER PROCEDURE' 必须是查询批次中的第一个语句。
  8. (7)Redis-Cluster集群理论及实践【上】
  9. Open3d数据滤波和点云分割
  10. 丑数java_丑数-Java研发军团
  11. 阿里云Linux服务器如何安装ClamAV杀毒软件-最全详细教程
  12. 基于PyQT5制作一个二维码生成器
  13. 大学生体测技巧 动态拉伸,立定跳远,肺活量,仰卧起坐,坐位体前屈
  14. 多模态训练如何平衡不同模态
  15. 助力低碳出行 | 基于ACM32 MCU的电动滑板车方案
  16. Teamviewer被限制,被怀疑商业用途的解决办法。
  17. 王者荣耀的技术修炼之路
  18. 【总结】最系统化的CV内容,有三AI所有免费与付费的计算机视觉课程汇总(2022年12月)...
  19. 蓝牙核心技术概述(一):蓝牙概述
  20. ros入门保姆级教程之召唤小乌龟

热门文章

  1. MVC:感觉用户认证标识(IsAuthenticated)有点延时。
  2. Web后端学习笔记 Flask(10)CSRF攻击原理
  3. win10下pycharm+Qtdesigner+Pyqt 成功配置
  4. 深度学习李宏毅PPT学习笔记一(深度学习介绍)
  5. qt 实现拖动矩形角度_Qt 绘图之图形视图框架
  6. 如何安装html启动器,如何在Spring Boot中创建自己的启动器?
  7. 怎样把gis锯齿边_ArcGIS地图锯齿处理的方法
  8. 命名实体识别(NER)资料收集
  9. 拉卡拉2020年股东净利润9.31亿 积极布局数字人民币业务
  10. 瑞士加密银行SEBA将发行B轮融资股票作为证券代币