【问题标题】:Is it possible to use protobuf-net Serializer and at the same time the respective *.proto file?是否可以同时使用 protobuf-net Serializer 和相应的 *.proto 文件?
【发布时间】:2011-05-19 12:31:43
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: protobuf-net


    【解决方案1】:

    作为第三种选择,可以使用[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,或者您可以从代码构建。

    【讨论】:

    • 嗨,马克。两个问题。在项目站点中,您说要使用生产 v1。你的意思是现在 v2 已经准备好投入生产了吗?因为,这是我想使用它的地方。二、如果可以的话,可以看看stackoverflow.com/questions/6063273/…吗?谢谢。
    • @mark - 简短回答“是”(事实上,我们在 stackoverflow 上“生活”了它);更长的答案“有一些 v1 功能可能不需要在它‘最终’之前实现 - 我写完后立即查看我的博客”
    • 我不介意从源头构建。我应该在protobuf-net.googlecode.com/svn/trunk 结帐吗?
    • @marc - 所以,你不建议从源代码构建?
    • @mark - 我一点也不反对...简单地说,我在过去几分钟内没有做任何更改...我一直在忙着写博客。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多