1

是否有使用现有 .proto 文件(从 ProtoBuf.Serializer.GetProto(); 生成)和原始字节反序列化为动态对象或普通对象的示例。

让我强调一下,这是我正在解决的一个问题,以改进我的内存不足缓存的调试工具 - 目标是能够使人类可读的任何对象无需使用应用程序(因为我将存储 .缓存中每种类型的原型,因为它在序列化发生时存在)。

此解决方案没有性能考虑,所有选项都在桌面上。如果在 protobuf-net 中有一种方法可以做到这一点,我会很高兴,但如果我需要使用代码生成/替代库,那很好。我不确定最谨慎的方法是什么。

4

1 回答 1

2

Protobuf-net 本身没有任何 .proto 解析工具,但是 google-code 下载(但不是 NuGet 下载)中包含的配套工具之一是“ProtoGen”,它对此有一些支持。它可以被引用(它只是一个 .net 程序集)和使用——这实际上是它的集成测试的操作方式。该工具可用作 ac# 代码生成器;将它与 CSharpCodeProvider 挂钩,您就有了一种可行的(如果是基本的)机制来处理内存中的数据。但是,您不希望以这种方式在单个应用程序域中处理大量 .proto - 运行时不擅长卸载程序集。

要执行您想要的操作,最好使用专为该场景设计的工具。这转化为“有人足够想要那个场景,以至于他们花时间去调查、设计、实施、测试和支持它”。

于 2013-06-22T06:41:47.747 回答