gpt4 book ai didi

c# - 是否可以将 Protobuf-Net 与没有无参数构造函数的类一起使用?

转载 作者:可可西里 更新时间:2023-11-01 09:01:40 31 4
gpt4 key购买 nike

使用 Protobuf-Net,我发现在没有无参数构造函数的情况下似乎无法反序列化一个类,或者我可能遗漏了什么?

我不想要某些具有无参数构造函数的类。我可以使用某种属性或其他技术吗?

最佳答案

protobuf-net 目前依赖于无参数构造函数来工作。

然而,该构造函数不需要是公共(public)的(it will use reflection if need be to invoke it),因此您可以定义仅供 protobuf-net 使用的所需私有(private)构造函数(添加关于原因的注释)并在那里处理特定的序列化相关问题。

这可以防止您的 api 的其余部分构造“非法”实例。

Marc 指出,如果您谈论的是最外层的消息对象,您也可以自己创建该对象并调用 Serializer.Merge。但是如果它需要创建一个对象(因为它当前有一个空实例,或者用于列表/数组中的新项目),那么它会寻找一个默认构造函数。

关于c# - 是否可以将 Protobuf-Net 与没有无参数构造函数的类一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1335687/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com