我有一个
的对象我试过阅读THIS,它在使用Sharpserializer时讨论了替换类来解决这个问题但坦率地说,当我不知道对象的属性时,我不明白如何做到这一点
是否有一些序列化框架可以做到这一点?
编辑:我正在研究protobuf.net 我无法弄清楚如何让它在我的场景中发挥作用 - 我希望Marc能够挽救这一天吗? :) - 我读了this这与我的问题完全相同,但我还是得到了 “预计不会输入类型,也不能推断合同” 使用时
private static byte[] ClienToBytes(IScsClient client)
{
using (var memoryStream = new MemoryStream())
{
RuntimeTypeModel.Default.Add(typeof(IScsClient), true).SetSurrogate(typeof(BinaryFormatterSurrogate<IScsClient>));
Serializer.Serialize(memoryStream, client);
return memoryStream.ToArray();
}
}
我使用的是RunTimeTypeModel错误吗?
答案 0 :(得分:0)
我会尝试protobuf-net。看看这里: http://code.google.com/p/protobuf-net/
网站引用:
协议缓冲区是Google用于大部分数据通信的二进制序列化格式的名称。它旨在:
- 体积小 - 高效的数据存储(远小于xml)
- 便宜处理 - 无论是在客户端还是服务器
- 平台独立 - 可在不同编程架构之间移植
- 可扩展 - 向旧消息添加新数据