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

dew*_*ald 8 .net c# performance serialization binary-serialization

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

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

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

Mar*_*ell 5

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

[field:NonSerialized]
Run Code Online (Sandbox Code Playgroud)

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

这是一个选择配置文件:

WCF绑定使用的序列化的性能测试

也许并不奇怪(因为我写了它),但我倾向于protobuf-net ...