什么是序列化自定义类的更好方法:在类上使用XMLSerializer或BinarryFormatter和[Serializable]属性?关于序列化的问题
Q
关于序列化的问题
0
A
回答
2
如果不知道如何使用生成的文件以及它的生命周期,就无法回答这个问题。
这个决定是基于这样一个事实:“升级”二进制格式比较困难。如果你的对象模型改变了,它将不会正确地反序列化。但是如果你已经实现了一个自定义的XML序列化/反序列化,那么你可以适当地处理这些“新”情况,并且生活会很好。
因此,请更多地了解您将如何使用它,您与谁共享信息以及模型可能发生的变化。
FWIW,我有时在给定的项目中使用这两种类型的序列化。
1
这真的取决于你如何使用序列化的类。如果您想将其传递给其他程序或想要轻松调试它,请使用XML(但请注意,XMLSerializer可能会生成不符合规范的XML输出,如多个根元素)。
在其他所有情况下,您可以使用二进制格式化程序。但是请注意,如果稍后更改类,则XML更适合 - 您可以使用XMLIgnore
等来保持XML格式不变。
0
有时也会根据序列化输出的用途为您做出决定 - 虽然您可以公开一个WebService以获取二进制数组,这是一个二进制序列化项,但您无法使用Web服务很容易从除.Net之外的任何东西(并且最终客户端可能需要对该类型的引用)。
使用XML意味着服务可以在最终客户
相关问题
- 1. 关于JSON和序列化的问题
- 2. 安全问题关于序列化C#
- 3. 关于外部化和序列化问题
- 4. XmlIgnore的XML序列化相关问题
- 5. 关于物化的问题
- 6. 关于Oracle序列的问题
- 7. 关于序列的postgresql nextval问题
- 8. 关于postgresql序列的问题
- 9. 关于结果集对象的可序列化问题
- 10. 关于.NET远程处理和序列化的问题
- 11. 关于使用Gson反序列化Json的问题
- 12. XML序列化相关问题和c#
- 13. LINQ2SQL关系和WCF序列化问题
- 14. 关于初始化问题
- 15. 问题关于C#优化
- 16. 序列化问题
- 17. 序列化问题
- 18. 序列化问题
- 19. 序列化问题
- 20. 序列化问题
- 21. 序列化问题
- 22. 序列化问题
- 23. 序列化问题
- 24. 序列化问题
- 25. 序列化问题
- 26. 关于排序的问题
- 27. 关于程序的问题
- 28. 关于序言的问题
- 29. Silverlight序列化/反序列化问题
- 30. file_get_contents序列化/反序列化问题
所以我用一个XmlSerializer的,并试图序列包含字典的类上暴露给任何客户端无论平台/环境,但它提出一个错误:“无法序列化一个成员,因为它实现了IDictionary”。 你可以请情况帮忙吗? – Mike 2010-03-16 11:00:33
@Mike:你可以帮助自己。该错误消息表示它无法序列化该接口。所以你需要自己实现它(通过覆盖相应的函数)。 – 2010-03-16 11:39:02
非常感谢您的建议 – Mike 2010-03-16 12:20:39