我们正在使用 protobuf.net 来序列化移动设备和后端服务之间的类,但我们现在需要根据用户的“上下文”调整发送回客户端的内容。
我们通常会通过实现 ISerializable 接口并查看上下文值来决定要序列化的内容来做到这一点。同样在构造函数中,我们将反序列化提供的值。
但似乎 ISerializable 没有为 protobuf.net 实现/支持(我明白为什么),所以我们通过采用“ShouldSerialize*”和“OnSerializing”方法解决了这个问题。然而,这确实意味着我们最终不得不将 StreamingContext 存储在每个感觉不正确的类中。我们可能会将其粘贴在全球范围内,但这也感觉不对。
有没有更好的方法来实现我们想要的,例如仅使用 protobuf.net 格式的序列化,但序列化的内容受外部提供的上下文的影响?