2017-01-19 4 views
0

私はC#用のGoogleプロトコルバッファを使用するためのチュートリアルに従っています。私はオブジェクトをバイト配列に変換するための例を見ていません - それを行う方法を誰かが知っていますか?私はprotocコンパイラを使用して、自動生成されたファイルパスのクラスをしましたし、これまでのところ、これを持っている:Googleプロトコルバッファ - バイト配列にシリアル化

FilePath fp = new FilePath 
{ 
    Path = "TestPath", 
    RealTimeMultiple = 5.0f 
}; 

だから、私は適切にBinaryFormatterを使用せずにFPオブジェクトをシリアル化する方法を知っておく必要があります。

答えて

5

あなたはGoogle.Protobuf nugetパッケージを使用していると仮定すると、あなただけ使用することができます。

using Google.Protobuf; 

... 

byte[] bytes = fp.ToByteArray(); 

あなたは IMessage.ToByteArray拡張メソッドを利用できるようにする Google.Protobufため usingディレクティブを必要とする - あなたが前に欠落していた何をすることができることを。

+0

ありがとうございました。例があるか、WriteToメソッドを使用してバイト配列を送信する方法について知っていますか?私は質問に詳細を追加しました。 – Roka545

+0

@ Roka545:「バイト配列を送信する」とはどういう意味ですか?メッセージをストリームに書きたい場合は、代わりに 'WriteTo(stream)'を使用してください。あなたの追加の質問は本当に助けにはなりません。ストリームに書き込む方法はすでに分かっています(ただし、ストリームで別のことをしない限り、通常はMemoryStreamに書き込みません)。だから、ストリームに書き込む方法やバイト配列に変換する方法を知っています...他に何を知っておく必要がありますか?あなたは本当にあなたが達成しようとしていることを説明していない... –

+0

私はノード間でデータを送受信するために、ナノブと一緒にProtobufを使用しています。基本的に、私はお互いにメッセージを送受信できる2つのノードを持っています。 1つのノードは、fpオブジェクトを作成してシリアル化し、それを他のノードに送信します。受信ノードは、そのデータを受信し、それをデシリアライズし、そこから情報を抽出する。 – Roka545

関連する問題