C# 在Protobuf net中,是否可以序列化未修饰的类?
要使用protobuf net序列化类,需要提供类和属性属性[ProtoContract]和[ProtoMember(n)]——其中n是1,2,3,…,等等 从克隆到类的镜像,是否可以序列化/反序列化我们无法控制的类 例如: 使用ProtoBufC# 在Protobuf net中,是否可以序列化未修饰的类?,c#,protobuf-net,C#,Protobuf Net,要使用protobuf net序列化类,需要提供类和属性属性[ProtoContract]和[ProtoMember(n)]——其中n是1,2,3,…,等等 从克隆到类的镜像,是否可以序列化/反序列化我们无法控制的类 例如: 使用ProtoBuf Serializer.Serialize(OutputStream,异常) 或 Serializer.Serialize(OutputStream,dataWithPossibleException) 注意。假设数据有[ProtoContrac
- Serializer.Serialize(OutputStream,异常)李>
- Serializer.Serialize(OutputStream,dataWithPossibleException)李>
- 如果我们有像扩展方法一样工作的“扩展属性”,那就太好了。[不可能]
- 本地复制类,然后在序列化/反序列化之前复制到/从对象中复制[这会起作用,但生产率会下降]
- 为类生成外部原型文件/定义并将其存储在参考资料中?[有人知道怎么做吗?]
- 您可以配置RuntimeTypeModel,告诉它类型和成员,而不需要任何属性
- 对于不方便的类型,可以提供代理以简化序列化(它必须具有与原始类型之间的转换运算符)
- 对于类型不是静态类型的API,有一个包含类型元数据的选项
但要回答标题问题(非装饰):是的,在v2中感谢您预见到这一需求!我现在选择了代理选项,因为我反编译了微小的框架类并将它们放在我的程序集中。大多数情况下,我都会坚持POCO,所以像这样一次性的也没什么大不了的。我将查看新的版本2选项。@sgtz SetSurrogate方法应使其更直接和方便。顺便说一句:我有一个版本稍旧的v2。所以,我点击了svn上的更新,现在我可以序列化/反序列化了。此外,我还必须删除并读取protobuf-net二进制文件。不知道那是怎么回事,但它现在运行得很好。谢谢你把这个项目公之于众。。。还有,多亏了谷歌。我应该提到,在这一点上,我仍然在使用我的Tuple副本,而不是系统名称空间中的副本。