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

protobuf-net - .proto rpc エントリからの FaultContract 属性の生成

私は、データ コントラクトに取り組んでいるプロジェクトで protobuf-net を使用してい.protoます。手動でファイルを作成し、カスタム ツールに C# コードを吐き出させています。また、サービス契約にも使用し始めており、サービス インターフェイスも問題なく作成されています。

一部のシステムへの接続のために WCF を使用しているため、datacontractsジェネレーター オプションを有効にしました。System.ServiceModel属性は存在しますが、サービスが発生させる可能性のある特定の障害を宣言する方法がないようです。

したがって、私の問題は基本的に次のとおりです。

  • Protocol Buffers 言語には、例外/障害の構造がないようです。
  • FaultContract 属性を生成するための protobuf-net オプションが表示されません。
  • protobuf-net によって生成されたインターフェイスは部分的であると宣言されていないため、生成されたコードを拡張することはできません。

protobuf-net でサービス WCF 操作エラーを宣言する方法はありますか、それともバージョン 2 を待たなければならないものですか?

どうもありがとう。

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

protobuf-net - インターフェイスに基づく Protobuf-net シリアライズ

protobuf-net r282 を使用していますが、Serialize を呼び出すと、「データ コントラクト クラス (およびそのようなリスト/配列) のみを処理できます (エラー処理オブジェクト)」という InvalidOperationException エラー メッセージが表示されます。protobuf-net Serializer.Serialize が呼び出されている時点で、問題のオブジェクトはインターフェイスにキャストされています。これを回避する方法はありますか?

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

}

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

protocol-buffers - 継承のためのProtobuf-net.protoファイルの生成

現在[Datacontract]を使用してオブジェクトをXmlにシリアル化している既存のC#コードの一部を置き換えるために、Protobuf-netのプロトタイプを作成しています。

プロトバッファを使用すると、Javaとデータを簡単に共有できます。したがって、私はProtobuf-netの.protoファイル生成に非常に興味があります。これは、これまでにテストしたほとんどすべてのユースケースでうまく機能しました。

しかし、今では継承により、それは別の球技です。継承されたクラス用に生成された.protoファイルは非常に単純で、基本クラスのフィールドは含まれていません。

継承自体はC#で正常に機能しています-生成されたバイトストリームを読み取ることができます(以下のテストを参照してください)。したがって、内部バイナリストリームには、基本クラスのすべてのフィールドが含まれます

生成された.proto:

バイトストリームがどのように書き出されるかを理解できれば、対応する.protoファイルを手動で作成できます。

protobuf-netを使用して継承用の.protoファイルを作成した経験はありますか?

継承のためにデータストリームがどのように作成されているかについての情報は素晴らしいでしょう。

私のDataModelは次のとおりです。

私のNUnitテストは次のようになります。

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

protobuf-net - データ メンバーの順序が wcf クライアント プロキシで生成されたクラスにありません

Employee dbml ファイルで、テーブルを SQL データベースから linq にマップしました。

そしてサービスでは、タイプのオブジェクトを返すだけです

クライアントにサービス参照を追加すると、日付メンバーの注文情報がスキップされます。

シリアライゼーション/デシリアライゼーションにprotobuf-netを使用しているため、クライアント側でデシリアライズ中に問題が発生しています。

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

c# - protobuf-net を使用したメッセージのリストの逆シリアル化

protobuf を使用してメッセージを送信する Java バックエンドがあります。区切りメッセージ オブジェクトを 1 つの大きなバイト配列 BLOB で tib 経由で送信します。Java で関数 parseDelimitedFrom(yourStreamHere) を使用して問題なくデシリアライズできますが、C# 側ではいくつかの問題があり、例が見つかりませんでしたが、ここで明らかな何かが欠けている可能性があります。

このようなC#で何かをしています

注:これに関する古い投稿を見ましたが、かなり古くなっているように見え、それ以来protobuf-netに変更が加えられたと思いますが、間違っていれば修正してください

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

c# - protobuf-netを使用して、インターフェイスタイプのメンバーを持つクラスをシリアル化します。

protobuf-netを使用してクラスをシリアル化できません。問題は、protobuf-netがインターフェイスをシリアル化できないことのようです。

要素はインターフェイスのリストであり、Mylass1またはMyClass2である可能性があるため、タイプMyClass1のオブジェクトをシリアル化できません。エンコードが設定されていないというエラーが発生します。

誰かが私にこれを解決する方法を教えてもらえますか?ありがとう。

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

c# - protobuf.net予期しないサブタイプ

Protobuf.netを使用しているプロジェクトでこの例外が発生しています。

送信しているクラスがあります。これは次のようになります。

fooはオフバーを継承しますが、protobufはこれを抑制し、上記の例外を生成するようです。これを回避する方法はありますか?リスト内のバーのすべての異なるサブタイプを保持できる必要があるため、よりタイプが制約されたソリューションは困難/不可能です。

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

protocol-buffers - Dictionary / KeyValuePairのProtobuf-netサポートはどのように機能しますか?

protobuf-netのDictionary/KeyValuePairサポートを理解しようとしています。基になるバイナリストリームとJavaから生成されたprotoファイルを使用したいのですが、生成された.protoファイルには、Pair_String_Int32と呼ばれるカスタムタイプのように見えるものが含まれています。

誰かがこれに光を当ててくれませんか?

私はこのようにマップされたクラスを持っています:

Serializer.GetProtoを使用して生成された.protoファイルは次のようになります。

では、Pair_String_Int32(およびprotobufferバイトストリームに入るもの)とは何ですか?protobfがprotocを使用してJavaで同等のマッピングコードを作成できるように、これをマッピングする方法はありますか?

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

.net-4.0 - protobuf-net と .Net 4 に問題はありますか?

Protobuf-net のプロジェクト ページでは、4 以外のすべての .Net バージョンについて説明しています。.Net 4 で protobuf-net を使用する際に問題はありますか?

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

c# - Protobuf.net 「シリアライザーが生成されると、タイプを変更できません」

非常に奇妙な例外をスローしている Protobuf.net を使用したかなり単純なコードがあります。MetaType.cs の 167 行目で、「シリアライザーが生成されると型を変更できません」という InvalidOperationException がスローされます。これは何を意味し、どうすれば修正できますか?

私のコードは次のようになります。

このメソッドは、すべてのシリアライズを開始します。

とても単純です。Parallel ですべてをループし、100 個のウィジェットをシリアル化します。

serialise メソッドも非常に単純です。

最後に、ウィジェット クラスは次のようになります。

編集::これは、並行してループしているという事実に関係していると思われます。そのようなことに対して、Protobuf.net はどの程度スレッドセーフなのでしょうか?