我还应该在.NET 4.0中使用BinaryFormatter进行简单序列化吗?

时间:2011-03-12 18:50:18

标签: c# .net performance serialization binary-serialization

我正在开发一个主从式应用程序。主应用程序将状态数据发送到从属设备以处理并以某种恒定速率显示。状态数据被包装到包含许多字段的单个类中。这些字段类型包括基元,类,接口,接口列表等。所有类型都是BCL或自定义类型,因此可以根据需要修改自定义类型。主应用程序和从属应用程序都是.NET 4.0。我不关心序列化版本控制,因为主应用程序和从属应用程序将作为一对交付。

我需要一种“快速”方法来序列化主服务器上的状态数据并在服务器上反序列化它。当我说“快”时,我更谈论开发时间(但如果解决方案很糟糕,处理时间可能是一个因素)。但是,主设备和从设备将分布在WAN上,因此某种程度的紧凑性也会很好。

对于快速解决方案,我目前正在考虑简单地使用BinaryFormatter,然后使用GZipStream压缩流。这是.NET 4.0的方法吗?

2 个答案:

答案 0 :(得分:5)

如果开发速度是关键(特别是因为你有接口等,你需要为某些序列化器配置适当),那么也许。请记住将任何事件标记为:

[field:NonSerialized]

所有其他措施(CPU性能,带宽,版本的健壮性,互操作性,维护成本等)我会选择其他格式:)

这是一个选择配置文件:

Performance Tests of Serializations used by WCF Bindings

也许不是一个惊喜(因为我写了它),但我倾向于protobuf-net ...

答案 1 :(得分:2)

在这里查看协议缓冲区:Fast and compact object serialization in .NET

相关问题