問題タブ [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 投票する
0 に答える
1048 参照

wcf - ProtoBehavior と複数のパラメーターを使用して WCF サービスを呼び出す

これは私を困惑させ、それが私の側のばかげた見落としであることを望んでいます. 次の Web サービスを呼び出すときに、null パラメーターが検出されると、後続のすべてのパラメーターが null (または数値の場合はゼロ) になります。

たとえば、personyearsInIndustryが存在するが が存在しない場合industry、 を含むすべてのパラメータがyearsInIndustryデフォルトで null/ゼロになります。適用する必要がある追加の属性はありますか?

{編集} 悪い。マーク、それはカスタム バインディングを備えた WCF です。

前もって感謝します。マイク

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

protocol-buffers - SerializeWithLengthPrefixと同等のC++

ソケット(TcpListenerおよびTcpClient)を使用してProtocol Buffers(protobuf-net)を使用して通信ライブラリを構築しましたが、正常に動作していますが、同僚はC++を使用してソフトウェアと通信するためのライブラリを作成する必要があります。

Serializer.NonGeneric.SerializeWithLengthPrefixとを使用していることがわかりましたSerializer.NonGeneric.TryDeserializeWithLengthPrefix

protobuf C ++ライブラリに同等の関数はありますか?そうでない場合、誰かがそれを実装する方法を知っていますか、それとも共有するために実装しましたか?

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

c# - フィールドのProtoInclude?

私は単純なオブジェクトを持っています

そしてキーに問題があります。その型は object ですが、int、long、または string のいずれかです。私は直感的に ProtoInclude 属性を使用して「これらの型を期待する」と言いますが、残念ながらそれらはクラスのみの属性です。これを回避する方法を知っている人はいますか? 背景として、公開オブジェクト Key は歴史的な理由から (そしてあちこちに) ここにあるので、すべてのリファクタリングの母を避けたいと思います ;-) これをシリアル化する可​​能性があれば、強制的にシリアル化することさえできます。文字列 ?

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

protocol-buffers - PrefixStyleをFixed32に切り替えた後、逆シリアル化が失敗する

使用して開発している通信ライブラリのテストスイートがあり、正常にprotobuf-net実行されています。すべてのテストに合格します。しかし、PrefixStyleをBase128からFixed32に変更すると、逆シリアル化は失敗します。

TryDeserializeWithLengthPrefix関数から受け取る例外は次のとおりです。

p>

メッセージをシリアル化および逆シリアル化するときにPrefixStyle.Base128を単純に保持すれば、すべてが機能します。

誰かが何が起こっているのか知っていますか?

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

c# - フラグ列挙型でProtoBuf-Netを使用中にエラーが発生しました

ProtoBuf-Netを使用し、列挙型が[FlagsAttribute]に設定されているenumプロパティをシリアル化しているときに、複数のフラグで構成される列挙型値をシリアル化すると、次のエラーメッセージが表示されました。

エラーは次のとおりです。値(MyEnum.MyValue)には、プロパティMyPropertyのワイヤ表現がありません

MyEnumは次のとおりです。

protobuf-netのバグのようですか?

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

.net - protobuf-net を使用して WCF サーバーが空の応答を返すのはなぜですか?

既存の WCF アプリケーションを更新して、protobuf-net サポートを追加しました。基本的に、私は:

  • すべてのデータ オブジェクトを含むアセンブリの参照として protobuf-net.dll (.net 3.0) を追加しました。このアセンブリは、サーバーとクライアントの両方から参照されています

  • [DataMember] を [DataMember(Order = x)] に置き換え (x として増加する int を使用)

  • すべての OperationContracts を ProtoBehavior 属性で更新しました

  • サービス参照を更新しました

クライアントから、サーバーでこのメソッドを呼び出します。

ConnectionData は次のように定義されています。

さて、ここで何が起こっているのですか:

  • サーバーをデバッグすると、ConnectionData オブジェクトが正しく初期化され、Join メソッドで返されることがわかります

  • クライアントをデバッグすると、Join 呼び出しから null オブジェクトが返されます。

  • WCF トレースを最大詳細まで有効にしました。サーバーのログには何も表示されませんでしたが、クライアントのログ ファイルには次の警告メッセージが表示されました。

System.Runtime.Serialization.ElementIgnored
逆シリアル化中に認識されない要素が XML で検出されましたが、無視されました。
要素 http://tempuri.org/:proto

ネットワークトラフィックを盗聴しましたが、これを逆シリアル化できないことをprotobuf-netのせいにしません:

問題をさらにトラブルシューティングし、protobuf-net でメッセージを正しくシリアル化するにはどうすればよいですか?


私はprotobuf-net r275を使用しています

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

c# - protobuf-net はどのようにして立派なパフォーマンスを達成しますか?

Marc Gravellによって開発された .NET 用のプロトコル バッファ ソリューションがなぜこれほど高速なのかを理解したいと思います。

元の Google ソリューションがどのようにパフォーマンスを達成したかは理解できます。オブジェクトのシリアル化用に最適化されたコードを事前に生成します。私はいくつかのシリアル化を手作業で書きましたが、リフレクションを回避すれば、この方法で非常に高速なコードを記述できることを知っています。しかし、Marc のライブラリは、属性を使用するランタイム ソリューションであり、コードを生成しません。それで、それはどのように機能しますか?

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

protobuf-net - protobuf-net: TimeSpan を逆シリアル化するワイヤ タイプが正しくありません

クライアント アプリケーションが WCF サービスからのメッセージを逆シリアル化しようとすると、この例外が発生します (「TimeSpan を逆シリアル化するワイヤ タイプが正しくありません」)。

.NET 3.5 SP1 と最新バージョンの protobuf-net (1.0.0.275) を使用しています。何が問題なのかわかりません。このエラー メッセージの理由がわかりません。誰?

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

.net - protobuf-net WCF に net.tcp バインディングを使用できますか?

protobuf-net WCF に net.tcp バインディングを使用できますか?

ClientBase を使用できますか、それとも ProtoClient を使用する必要がありますか?

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

protobuf-net - protobuf-net r275 を使用した DataContract シリアライゼーション

r275 バージョンに更新したところ、DataContract クラスを正しく管理していないようです。この非常に単純なクラスをシリアル化することによって:

Only data-contract classes (およびそのようなリスト/配列) を処理できます (エラー処理 ProtoData)