1

既存の .proto ファイル (ProtoBuf.Serializer.GetProto(); から生成) と raw バイトを使用して動的オブジェクトまたはプレーン オブジェクトに逆シリアル化する例はありますか。

これは、メモリ不足のキャッシュ用に持っているデバッグ ツールを改善するために取り組んでいる問題であることを強調させてください。目的は、アプリを使用せずに人間が読めるオブジェクトを作成できるようにすることです (.シリアル化が発生したときに存在していた、キャッシュ内の各型の proto)。

このソリューションにはパフォーマンスに関する考慮事項はありません。すべてのオプションが検討中です。protobuf-net でこれを行う方法があれば嬉しいのですが、コード生成/代替ライブラリを使用する必要がある場合は、それで十分です。最も慎重なアプローチが何であるかはわかりません。

4

1 に答える 1

2

Protobuf-net 自体には .proto 解析ツールはありませんが、Google コードのダウンロード (NuGet のダウンロードではなく) に含まれるコンパニオン ツールの 1 つは "ProtoGen" で、これをある程度サポートしています。これは参照でき (単なる .net アセンブリです)、使用できます。これが、実際に統合テストがどのように機能するかです。このツールは、ac# コード ジェネレーターとして機能します。それを CSharpCodeProvider にフックすると、基本的な場合でも、メモリ内のデータを処理するための実行可能なメカニズムが得られます。ただし、この方法で単一のアプリ ドメインで大量の .proto を処理することは望ましくありません。ランタイムはアセンブリのアンロードが得意ではありません。

必要なことを行うには、そのシナリオ専用に設計されたツールを使用することをお勧めします。これは、「誰かがそのシナリオを十分に欲しがり、時間をかけて調査、設計、実装、テスト、およびサポートした」ことを意味します。

于 2013-06-22T06:41:47.747 に答える