是否可以使用 protobuf-net 序列化程序并同时使用相应的 *.proto 文件



我有一个.NET类型,它既没有ProtoContract也没有DataContract。此外,并非所有状态都需要进行原型序列化。我可以为它定义一个 .proto 文件,但同时使用某种序列化程序来序列化它,就好像它归属于 ProtoContract 一样吗?

谢谢。

作为第三个选项,可以使用[XmlType][XmlElement(Order=n)]...但我不认为这就是你的意思;p

在"v2"中,这确实是可能的。你不需要定义一个 .proto - 你可以简单地告诉它在运行时做什么,例如:

var model = TypeModel.Create();
model.Add(typeof(SomeType)).Add("Foo", "Bar", "Blip");

现在将model存储在某个地方(并重复使用),并使用 model.Serialize(...)model.Deserialize(...) .上面将SomeType配置为序列化.Foo(作为字段 1)、.Bar(作为字段 2)和.Blip(作为字段 3)。当然,还有更多方法可以做到这一点,以实现更细粒度的控制。

它将生成(首先需要)一个序列化程序(通过 IL 发出,非常快),可以按预期与您的类型一起使用。

有一个可下载的"v2"dll,但它需要更新 - 在过去的几周里我做了很多修复。我将在今天晚些时候尝试刷新此 dll,或者您可以从代码构建。

最新更新