2

専有スキーマの XML ファイルが多数あります。XML ファイルは、バイナリ通信プロトコル (メッセージ構造) を定義します。

Google のプロトコル バッファ テクノロジーを活用したいと考えています。

既存のコードを使用して XML ファイルをオブジェクト モデル (メモリ内) に読み込みます。そのオブジェクト モデルから .proto ファイルを生成したいと思います。

基本的に私が探しているのは、.proto ファイル形式をオブジェクト モデルとして表し、そのオブジェクト モデルを .proto ファイルに保存できるコード/ライブラリ (C#/.NET) です。

Jon Skeet の dotnet-protobufs を見てみましたが、それが何をするのか理解できたと思います (.proto ファイルに基づいて c# コードを生成します)。

ただし、自分のプロジェクトで使用できるかどうかはわかりませんでした (おそらく .proto 形式のオブジェクト モデルがありますが、おそらくこの形式を解析して書き出すことができないコードのみ)。

4

2 に答える 2

2

protobuf-net(.NETのプロトコルバッファの私のバージョン)は、protoファイルを生成するための基本的なサポートを備えていますが、空白を埋めるのは難しくありません。最初にコアエンジンに集中し、次にプロトからのC#の生成に集中しました。オブジェクトモデルからプロトを生成するためにxsltを作成することは、それほど違いはありません。でも数日かかると思いますが…(現時点では時間に限りがあります)。

これが役に立ったら、私に知らせてください。

参考までに、protobuf-netエンジンはほとんどのXmlSerializerクラス(DataContractSerializerおよび最近BinaryFormatter)と互換性があります。したがって、コードが現在xmlとして機能している場合は、おそらくprotobuf-netで機能させることができます。もちろん、保証はありません...

于 2008-12-04T23:33:11.913 に答える
2

私のコードは、バイナリとテキストへのシリアライズとデシリアライズしかできません。ただし、Marc Gravell のプロジェクトには XML 機能があると思います。実際、彼は .proto ファイル (それ自体が protobuf としてエンコードされている) のバイナリ バージョンをロードし、それを XML として書き出し、XSLT を適用することに基づいて C# コードを生成していると思います...

于 2008-12-04T22:34:26.463 に答える