問題タブ [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.
c# - C# での Protobuf メッセージの読み取り
簡単なメッセージがあります:
すばらしい VS プラグインが.cs
ファイルを生成します。
を使用してJava側からメッセージを送信しています
Socket Listener のように動作する私の C# アプリケーションには、Java クライアントから送信されたメッセージをリッスンする Listen というメソッドがあります。
ここでは明らかにいくつかの基本が欠けています。
sendName オブジェクトを取得するには、どのメソッドを使用すればよいですか?
C# でコードをデバッグすると、DeserializeWithLengthPrefix
メソッドを呼び出すとデバッガーが終了します。
これは私のC#コードです:
これは私のJavaコードです:
c# - Proto-Bufでbool型を使用する
シリアル化/逆シリアル化のアプリケーションでprotobuf-netを使用しています。私は問題に直面しています。
このクラスをコレクションオブジェクトで使用しています。
シリアル化プロセスは正常に機能しますが、逆シリアル化後、プロパティIsPeriodicの値はデフォルトでtrueになりますが、場合によってはfalseになります。誰か助けてもらえますか?
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データを送信する方法と、データを逆シリアル化する方法について誰かが考えていますか?ありがとう。
c# - ソケットでストリームを使用する非同期アプローチ
接続されたソケットごとに 1 つのスレッドを使用することを避けるために、ソケットで BeginReceive/EndReceive を使用できるように、常に独自のシリアライザー/デシリアライザーを構築してきました。かなり時間のかかる作業です。
私は protobuf-net を調べ始めましたが、シリアライゼーション/デシリアライゼーションを自分で書かなくても非同期ソケットで使用したいと考えています。ブロッキング操作をラップするために、ソケットごとに 1 つのスレッドを使用する必要がない方がよいと思います。
クイックスタートを見ると、まさにそれを行っています (クライアントごとに 1 つのスレッド)。他に方法はありませんか?
私の質問は、protobuf-net に関するものではなく、シリアライゼーションとソケット全般に関するものです。しかし、protobuf-net の例は大歓迎です。
c# - protobuf-net と rpc over tcp
protobuf-net (または protobuf の他の .net 実装) を使用する rpc over tcp 実装を探しています。
助言がありますか?
protobuf-net - 送信される protobuf メッセージの種類を知るための API
送信されているprotobufメッセージの種類を知るためのAPIは何ですか?
たとえば、次を使用して SendNameMessage オブジェクトを取得します。
SendNameMessage sendNameObj = Serializer.DeserializeWithLengthPrefix< SendNameMessage>(ストリーム, PrefixStyle.Fixed32);
リスナーは、送信されているメッセージの種類をどのように知ることができますか?
以下は私の SendNameMessage クラスです:
送信されたメッセージが sendName か sendId かを知るにはどうすればよいですか?
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=340で
しかし、このメソッドは削除されたか、Windows Phone 7 開発キットにはまだ実装されていません。
c# - Protobuf-net: 抽象クラスのインスタンスを作成できません
ここにあるコードに基づいて: protobuf and List<object> - how to serialize / deserialize? ProtoObject の値の型を持つ汎用の「ProtoDictionary」を作成しました。
ProtoDictionary のコードは次のとおりです。
ProtoObject の場合:
問題は、次のコードを使用して SQL から ProtoDictionary を逆シリアル化しようとしたときです。
「InvalidOperationException: 抽象クラスのインスタンスを作成できません」というエラーが表示されます。
私のスタックトレースは次のとおりです。
何が間違っているのかわかりません。どんな助けでも大歓迎です。
ありがとう、ダン
protobuf-net - protobuf-net、それはどのように機能しますか?
現在、.netバイナリシリアル化を使用して、データをシリアル化して永続化しています。それは仕事をしますが、データの変更はそれほど簡単ではないので、その目的で使用することを意図したようにはなりません。
そこで、protobufはその目的に合わせて設計されているため、調査を開始しました。
私はそれを使用する方法にprotobuf-netを見ています。以下は私がまだ知らないことです。あなたがすでに答えを得たなら、それは私の日を救うでしょう。
- 製品は.netにあるだけなので、.protoファイルは気にしません。したがって、.protoファイルがなくてもprotobuf-netを使用できますか。
- はいの場合、他の言語への移植が必要な場合、後でc#クラスから.protoファイルを生成できますか?
.net - protobuf-net およびジェネリック コレクションからの派生
Protobuf-net で List< T > から派生したオブジェクトをシリアル化する方法がわかりません。ProtoInclude 属性を追加しようとしましたが、ProtoBuf.ProtoException を受け取りました: ProtoIncludeAttribute の Known-type List`1 は、 UserTypeCollection の直接のサブクラスでなければなりません。ProtoInclude 属性を削除すると、データがまったくシリアル化されていないように見えます。このような状況の例はどこにも見つからないようです。WS API のオプションとして protobuf シリアル化を追加しており、DataContractSerializer との互換性を維持する必要があります。