【发布时间】:2021-11-26 05:05:18
【问题描述】:
我提供了一个库,用于对与我合作的其他开发人员使用的数据进行序列化/反序列化。序列化的数据与类型名称一起存储在数据库中。我无法控制我的库使用的类型。我使用 JSON 序列化,它适用于少量数据。但是当对象很大时,例如包含数千个项目的列表,它会很慢。
我希望我的库从 JSON 序列化切换到我在库中定义的特定类型的协议缓冲区,并根据 protobuf-net 要求进行装饰。
所以我需要写一个函数来判断一个类型是否可以序列化。我看到有一个 Serializer.NonGeneric.CanSerialize() 方法。但我需要一些适用于 List 等通用容器的东西。在我的数据库中,我的类型名称可能如下所示:
System.Collections.Generic.List`1[[MyAssembly.Person, MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
...据此我需要确定 protobuf-net 是否可以反序列化数据。
任何帮助将不胜感激。
【问题讨论】:
标签: protobuf-net