問題タブ [binary-deserialization]

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 に答える
546 参照

vb.net - 動的にコンパイルされたコードのアセンブリの逆シリアル化エラー

動的に生成/コンパイルされたアセンブリをシリアル化してSQLに格納し、その後アセンブリを抽出して使用しようとしています。しかし、私は私を狂わせているエラーにぶつかっています。

ファイルまたはアセンブリを読み込めませんでした'<ランダムコード>、Version = 0.0.0.0、Culture = neutral、PublicKeyToken=null'またはその依存関係の1つ。指定されたファイルが見つかりません。

アセンブリを非シリアル化しようとすると。ポインタをいただければ幸いです。部分コード:

エラーこの時点で:行でvoAssembly = voBF.Deserialize(voMemStream)

ファイルまたはアセンブリを読み込めませんでした'...<ランダムコード>...、Version = 0.0.0.0、Culture = neutral、PublicKeyToken=null'またはその依存関係の1つ。指定されたファイルが見つかりません

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

deserialization - protobuf-net による大きなファイルの逆シリアル化

1.5GBのtxtファイルを逆シリアル化する必要があります。code.google.com/p/protobuf-net/ の protobuf-net を使用しています

場合によっては、さまざまな場所でさまざまな例外 (null 参照、メモリ アクセス違反) で失敗することがあります (約 50% のケース)。プロセッサの負荷が低い場合、障害の可能性が減少することに気付きました。

このような失敗を避けるにはどうすればよいですか?

コードを逆シリアル化する例を次に示します。

今日、エラー コード 0xc0000005 の FatalExecutionEngineError が発生しましたが、コードのどの部分が安全でない可能性があるかわかりません。これは一定のエラーではありません。アプリケーションを再起動すると、すべてが正しく機能します。

これは、逆シリアル化する必要があるシリアル化されたファイルの例です: https://docs.google.com/file/d/0B1XaGInC6jg3ZXBZZDA3bHh3bVk/edit

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

c++ - C ++でaddress-albeフィールドを実装するための最良の方法は何ですか?

フィールド/メンバーへのマッピングが実行時にのみ認識される(複雑な)逆シリアル化を実装しようとしています。とにかく私がやろうとしていることは次のようなものです:

次に、2つの配列があります。1つはフィールドのインデックスを持ち、もう1つはタイプを示すものを持っています。次に、配列を反復処理して、バイトストリームからフィールドに書き込みます。

説明がお粗末で申し訳ありませんが、コードで実装する方法がわかりません。どんなアイデアでもありがたいです!

0 投票する
3 に答える
1829 参照

c#-4.0 - C#でのジェネリックオブジェクトのバイナリ逆シリアル化

シリアル化できる汎用クラスがあります。

だから私はそれを逆シリアル化したいのですTが、Stringインスタンスがそれを処理する場合、別の場合には例外をスローしたいと思います。デシリアライズ中

にジェネリックのタイプが含まれていることを知る方法は?MyOwnGenericClass<T>次のコードをどのクラスにキャストする必要がありますか?

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

.net - ISolution のシリアル化 - Roslyn CTP3

私は、メタプログラミングのコンテキストで Roslyn を試してきましたが、ISolution または IProject オブジェクトをデータベースに永続化する際に問題が発生しました。これは、ISolution オブジェクトをバイト配列にシリアライズしてから、オブジェクトに戻そうとしたものです。クラスがシリアル化可能な例外としてマークされていないことに遭遇しました。私はこれについてどんな考えにもオープンです。私がこれに間違った方法でアプローチしている場合は、遠慮なくそう言ってください。

更新: これらのアイテムをデータベースにシリアル化する必要がある私の理由には、遺伝的プログラミングの実験が含まれます。基本的に、ソリューションを変更するか、プロジェクトを少し変更してから、新しく変更されたプログラムをテストし、テスト段階でうまくいった場合は、その変更されたプログラムを将来の世代に使用できます。残念ながら、これらすべてのオブジェクトを常にメモリに保持するのは少し非現実的です。停電は、これらのエンティティの状態を維持する正当な理由の 1 つですが、他にも理由があります。したがって、必ずしもこれらのものをバイト単位でシリアル化する必要はありません。必要なときにこれらのオブジェクトを再構築できるように、最小限の情報を保存することができます。ただし、最終目標を達成するための最も効率的な方法はわかりません。

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

c# - インターフェイスのみが利用可能な場合にデシリアライズする方法は?

私は3つのコンポーネントを持っています:

  • ユーティリティ ライブラリ (Processor.dll): Element ライブラリについてしか知らない
  • 要素ライブラリ (IElement): どのライブラリについても知りません
  • アプリ: 両方のライブラリについて知っている

アプリは Processor ライブラリを呼び出し、次の型のクラスを渡します。

ClassA は、プロセッサーに渡される前にシリアライズされます。Processor はベース ライブラリであり、ClassA などのクラス タイプを認識しません。ただし、IElement については認識しています。プロセッサは、渡された ClassA 型の IElement を逆シリアル化します。

問題は、インターフェイスを逆シリアル化できないことです。しかし、プロセッサは ClassA について認識していないため、認識すべきではありません。この場合、渡されたオブジェクトへの参照を取得するにはどうすればよいですか?

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

c# - SharpSerializer を使用した DeserializingException

いくつかの複雑なオブジェクトを操作するために、バイナリのシリアル化を試みています。SharpSerializer を使用すると、シリアライズは問題なく動作しますが、デシリアライズできません。

コード スニペットとスタック トレースを次に示します。

スタック:

カスタムコントロールの階層と多くの継承がある複雑な構造を逆シリアル化しようとしています。

このコードの何が問題になっていますか?

編集: シリアル化コード

シリアル化/逆シリアル化しようとしているオブジェクトは次のようなものです:

whereBasePluginは、UserControl他の型によって拡張された a です。BasePluginクラスはこちら

補足情報として、昨日と同じコードを実行すると、次のメッセージが表示されます。

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

c# - .Net での Apache Thrift デシリアライゼーションの奇妙な動作

アプリケーションで Apache Thrift を使用して、複数のマシン間でデータを交換しています。

outspace からデータを受け取り、トランスポート、プロトコルを作成し、受け取ったデータをオブジェクトにデシリアライズします。これが私のコードです:

他のタイプの逆シリアル化は例外をスローするため、バイナリシリアル化されたTCciUserLoginV1.cciUserLoginV1_resultを受け取ります。ただし、 result.Successプロパティの通常の逆シリアル化は、while サイクルの 10 回目の反復後にのみ発生します。whileを使用した理由は何ですか。誰が何が起こっているのか教えてもらえますか?

前もって感謝します。

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

c# - 型が変更されたときにバイナリの逆シリアル化を強制的に失敗させる

次の状況で逆シリアル化を強制的に失敗させる非侵入型の方法を探しています。

  • 厳密に名前が付けられたアセンブリで型が定義されていません。
  • BinaryFormatter が使用されます。
  • シリアル化されてから、型が変更されました (たとえば、プロパティが追加されました)。

以下は、失敗した NUnit テストの形での問題の図/再現です。クラスを変更せずにこのパスを作成する一般的な方法を探しています。できればシリアライゼーションおよび/またはデシリアライゼーション中にData設定するだけです。BinaryFormatterまた、影響を受ける型ごとに特定の知識が必要になる可能性が高いため、シリアライゼーション サロゲートも関与させたくありません。

ただし、MSDN ドキュメントには、私を助けるものは何も見つかりません。