当前位置: 首页 > 编程语言 > C#

XML序列化 – 何时使用DataContractSerializer - Binary - XMLSerialiser分享

时间:2023-04-11 01:11:24 C#

C#学习教程:XML序列化——何时使用DataContractSerializer/Binary/XMLSerialiser对序列化的任何更改=?不好的XMLSerializer是有问题的,因为你必须提供一个无参数的构造函数和公共字段,虽然你可以更好地控制元素是属性还是元素并且它的命名DataContractSerializer很好,但需要显式添加所有分类,这是一种耻辱,但我偶然发现NetDataContractSerializer没有这个限制。如果您的目标是C#序列化并且对xml的大小没有很大限制,那么NetDataContractSerializer总是可行的方法吗?DanRigsby有一篇关于XmlSerializer与DataContractSerializer的非常好的比较文章,也涵盖了NetDataContractSerializer。DataContractSerializer:您可以明确地告诉DCS要序列化什么,但它对序列化的方式没有太大影响。XmlSerializer您可以非常清楚地告诉XmlSerializer如何序列化以及序列化什么,但您不能序列化所有内容-只能序列化公开可见的属性。NetDataContractSerializer有点奇怪——它不可互操作,仅当两端都是.NET时才有效——它在消息中包含.NET类型信息(使其更大)。您不能以声明方式将其“开箱即用”地添加到WCF服务中。这是一个艰难的权衡——一如既往。绝对远离任何二进制格式化程序——这不是向后兼容的、脆弱的,并且一定会让你头疼——使用一种标准方法。真的很难说哪一个对您的给定场景“最好”——您必须自己想出一个……MarcGravell在他的博客上显示他使用DataContractSerializer、XmlSerializer和大多数其他.NET序列化器基准测试结果用于处理器,包括protobuf-net(他创建的.NET协议缓冲区的实现)。以上就是C#学习教程分享的全部内容:XML序列化——何时使用DataContractSerializer/Binary/XMLSerialiser。代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: