gpt4 book ai didi

.net - POCO(反)序列化如何在 protobuf-net 中工作?

转载 作者:行者123 更新时间:2023-12-04 06:24:09 25 4
gpt4 key购买 nike

是否可以使用 protobuf-net 属性或显式将类型添加到模型中来(反)序列化 POCO 类型?

最佳答案

目前 - 简而言之,没有。它需要对您打算如何操作有一个基本的了解。我想也许我可以添加一些东西来让您为完全朴素的类型(不是 DataContractProtoContractXmlType 的东西)指定默认策略,但最合适的选项是“所有公共(public)成员” (很像 XmlSerializer )。

我不想鼓励这样做的原因是它很脆弱。由于 protobuf 规范的定义方式,您得到的只是字段编号。说“好的,按字母顺序排列它们并使用它们的位置”很容易,但是如果您想更改类型,那是不安全的。让我们面对现实吧,我们都这样做。你会惊讶于我添加 AardvarkCount 的频率。属性,它与字母顺序混淆。

因此,我不想让人们很容易陷入他们冒着数据完整性风险的境地。因为我不喜欢人们对我大喊大叫。如果有一个全局默认策略,很容易在没有意识到的情况下使用该策略,这就是你开始陷入困境的时候。

但是,我确实打算更容易地根据每种类型选择这些策略(代码都存在,只是不在公共(public) API 中) - 例如:

model.Add(typeof(MyCrazyType), false).ApplyPolicy(ImplicitFields.AllPublic);

( ImplicitFields 的东西已经存在,回到 v1 天)或者可能只是:
model.Add(typeof(MyCrazyType), ImplicitFields.AllPublic);

有什么帮助吗?推理是否有意义?

关于.net - POCO(反)序列化如何在 protobuf-net 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6212075/

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