Jac*_*ada 5 c# datacontractserializer xmlserializer
我已经看了一会儿了
似乎不鼓励使用二进制序列化,因为对字段名称的任何更改都会破坏序列化=?不好
XMLSerializer是有问题的,因为您必须提供无参数构造函数和公共字段,尽管您可以更多地控制元素属性或元素及其命名
DataContractSerializer很好,但需要明确添加所有的分类,这是一种耻辱
但是我偶然发现NetDataContractSerializer没有这个限制.
如果你的目标是C#序列化并且对xml的大小没有很大的限制,那么NetDataContractSerializer总是可以去这里吗?
mar*_*c_s 11
Dan Rigsby在XmlSerializer与DataContractSerializer上有一篇非常好的比较文章,并且还涉及NetDataContractSerializer.
DataContractSerializer的:
你告诉DCS明确什么序列化,但你没有过大的影响力如何,它的完成.
XmlSerializer的
您可以非常清楚地告诉XmlSerializer如何以及序列化的内容,但是您无法序列化所有内容 - 只有公开可见的属性.
NetDataContractSerializer有点奇怪 - 它不可互操作,只有当两端都是.NET时才有效 - 它在消息中包含.NET类型信息(使其更大).您无法以声明方式将其添加到"开箱即用"的WCF服务中.
这是一个艰难的权衡 - 一如既往.绝对远离任何二进制格式化程序 - 这不是向后兼容,脆弱,并且必然会让您头疼 - 使用其中一种标准方法.对于你给定的场景,哪一个是"最好的"真的很难说 - 你必须为自己想出一个......