問題タブ [protobuf-net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
7166 参照

c# - C# での Protobuf メッセージの読み取り

簡単なメッセージがあります:

すばらしい VS プラグインが.csファイルを生成します。

を使用してJava側からメッセージを送信しています

Socket Listener のように動作する私の C# アプリケーションには、Java クライアントから送信されたメッセージをリッスンする Listen というメソッドがあります。

ここでは明らかにいくつかの基本が欠けています。

sendName オブジェクトを取得するには、どのメソッドを使用すればよいですか?


C# でコードをデバッグすると、DeserializeWithLengthPrefixメソッドを呼び出すとデバッガーが終了します。

これは私のC#コードです:

これは私のJavaコードです:

0 投票する
4 に答える
4008 参照

c# - Proto-Bufでbool型を使用する

シリアル化/逆シリアル化のアプリケーションでprotobuf-netを使用しています。私は問題に直面しています。

このクラスをコレクションオブジェクトで使用しています。

シリアル化プロセスは正常に機能しますが、逆シリアル化後、プロパティIsPeriodicの値はデフォルトでtrueになりますが、場合によってはfalseになります。誰か助けてもらえますか?

0 投票する
1 に答える
1942 参照

c# - WCFを使用したHTTPGETを介したプロトコルバッファ

バイト[]のprotobuf-netシリアル化データを返すWCFサービスがホストされています。元々、これはデフォルトのwebHttpBinding設定(SOAP)でホストされており、すべてが正しく機能していました。最近、クライアントから直接HTTP GETとPOSTを呼び出す必要があることがわかったので、RESTfulサービスを使用するように切り替える方が簡単だと思いました。WebGet属性とWCFRESTテンプレートを使用するように切り替えました。

クライアントをテストするための簡単なWebサイトを作成しようとしましたが、データの逆シリアル化に問題があります。これは、私がサービスを呼び出す方法の例です。

「結果」で返されるものの例:<base64Binary xmlns = "http://schemas.microsoft.com/2003/10/Serialization/"> ChsKCzEyMy00NTYtNzg5EgU0NDAwMBoFQmxhY2sKHAoLOTYzLTg1Mi03NDESBTIzMDAwGgZTaWx2ZXI

また、<base64Binary>タグ間のデータを逆シリアル化しようとしましたが、結果はありませんでした。WebGetメソッドからバイナリprotobuf-netデータを送信する方法と、データを逆シリアル化する方法について誰かが考えていますか?ありがとう。

0 投票する
1 に答える
850 参照

c# - ソケットでストリームを使用する非同期アプローチ

接続されたソケットごとに 1 つのスレッドを使用することを避けるために、ソケットで BeginReceive/EndReceive を使用できるように、常に独自のシリアライザー/デシリアライザーを構築してきました。かなり時間のかかる作業です。

私は protobuf-net を調べ始めましたが、シリアライゼーション/デシリアライゼーションを自分で書かなくても非同期ソケットで使用したいと考えています。ブロッキング操作をラップするために、ソケットごとに 1 つのスレッドを使用する必要がない方がよいと思います。

クイックスタートを見ると、まさにそれを行っています (クライアントごとに 1 つのスレッド)。他に方法はありませんか?

私の質問は、protobuf-net に関するものではなく、シリアライゼーションとソケット全般に関するものです。しかし、protobuf-net の例は大歓迎です。

0 投票する
2 に答える
3227 参照

c# - protobuf-net と rpc over tcp

protobuf-net (または protobuf の他の .net 実装) を使用する rpc over tcp 実装を探しています。

助言がありますか?

0 投票する
1 に答える
3262 参照

protobuf-net - 送信される protobuf メッセージの種類を知るための API

送信されているprotobufメッセージの種類を知るためのAPIは何ですか?

たとえば、次を使用して SendNameMessage オブジェクトを取得します。

SendNameMessage sendNameObj = Serializer.DeserializeWithLengthPrefix< SendNameMessage>(ストリーム, PrefixStyle.Fixed32);

リスナーは、送信されているメッセージの種類をどのように知ることができますか?

以下は私の SendNameMessage クラスです:

送信されたメッセージが sendName か sendId かを知るにはどうすればよいですか?

0 投票する
1 に答える
616 参照

c# - Windows phone 7 のプロトコル バッファー ネット

Windows Phone 7 アプリケーションから Protocol Buffer 形式のサーバーから応答をダウンロードしようとしています。

私は WebClient でこれをやろうとしていますが、私の問題は次のとおりです。

WebClient のダウンロード方法は 2 つだけです

しかし、この 2 つの方法は応答を取得するのには適していません。応答のサイズは 16 桁の 16 桁 ( 080118CBDDF0E104 ) である必要がありますが、2 つの方法で取得される文字列とストリームのサイズはわずか 8 です。

だから私は私の問題を解決する方法を探しています。C#用のものを見つけました

http://code.google.com/p/protobuf-net/source/browse/trunk/BasicHttp/HttpClient/ProtoWebClient.cs?spec=svn340&r=3​​40

しかし、このメソッドは削除されたか、Windows Phone 7 開発キットにはまだ実装されていません。

0 投票する
2 に答える
2794 参照

c# - Protobuf-net: 抽象クラスのインスタンスを作成できません

ここにあるコードに基づいて: protobuf and List<object> - how to serialize / deserialize? ProtoObject の値の型を持つ汎用の「ProtoDictionary」を作成しました。

ProtoDictionary のコードは次のとおりです。

ProtoObject の場合:

問題は、次のコードを使用して SQL から ProtoDictionary を逆シリアル化しようとしたときです。

「InvalidOperationException: 抽象クラスのインスタンスを作成できません」というエラーが表示されます。

私のスタックトレースは次のとおりです。

何が間違っているのかわかりません。どんな助けでも大歓迎です。

ありがとう、ダン

0 投票する
1 に答える
903 参照

protobuf-net - protobuf-net、それはどのように機能しますか?

現在、.netバイナリシリアル化を使用して、データをシリアル化して永続化しています。それは仕事をしますが、データの変更はそれほど簡単ではないので、その目的で使用することを意図したようにはなりません。

そこで、protobufはその目的に合わせて設計されているため、調査を開始しました。

私はそれを使用する方法にprotobuf-netを見ています。以下は私がまだ知らないことです。あなたがすでに答えを得たなら、それは私の日を救うでしょう。

  • 製品は.netにあるだけなので、.protoファイルは気にしません。したがって、.protoファイルがなくてもprotobuf-netを使用できますか。
  • はいの場合、他の言語への移植が必要な場合、後でc#クラスから.protoファイルを生成できますか?
0 投票する
1 に答える
913 参照

.net - protobuf-net およびジェネリック コレクションからの派生

Protobuf-net で List< T > から派生したオブジェクトをシリアル化する方法がわかりません。ProtoInclude 属性を追加しようとしましたが、ProtoBuf.ProtoException を受け取りました: ProtoIncludeAttribute の Known-type List`1 は、 UserTypeCollection の直接のサブクラスでなければなりません。ProtoInclude 属性を削除すると、データがまったくシリアル化されていないように見えます。このような状況の例はどこにも見つからないようです。WS API のオプションとして protobuf シリアル化を追加しており、DataContractSerializer との互換性を維持する必要があります。