問題タブ [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 に答える
394 参照

c# - JavaでのC#OnDeserialized / OnSerializaedと同等ですか?

JavaのC#[OnSerialized]および[OnDeserialized]属性に相当するものはありますか?

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

c# - DeflateStreams を使用した C# カスタム シリアライゼーション/デシリアライゼーション

オブジェクトのカスタムのシリアル化/逆シリアル化を行い、シリアル化されたデータを DeflateStreams で圧縮/解凍しようとしています。私は元々、より複雑なオブジェクトに対してこれを行っていましたが、問題を解決するために削減しましたが、まだそこにあるため、より不可解になりました。シリアライズ/デシリアライズするクラスは次のとおりです。

そして、これをシリアル化することになっているコードがあります(動作しているようです):

そして、ここに逆シリアル化があります:

さて、問題に。デシリアライゼーションは、{"オブジェクト '201326592' のマップがありません。"} というメッセージとともに SerializationException をスローします。トラブルシューティングの方法や、問題の原因を正確に突き止める方法がわかりません。BinaryFormatter の Serialize メソッドと Deserialize メソッドを同じ MemoryStream で実行すると、非常に基本的なシリアル化が機能します。

両方のメソッドから DeflateStream のものを削除しようとしましたが、それでも同じ問題です。MSDN や他の場所の例を見ると、私はそれを正しく行っているように見え、例外メッセージをグーグルで調べても意味のある結果が得られません (または、検索が下手なだけかもしれません)。

PS。ご覧のとおり、 src.CopyTo(dest) をまったく機能させることができないため、基本的なストリームコピーである Miscellaneous.CopyStream(src, dest) を使用しているため、そのヒントも歓迎します。

以下は、VS2010 プロジェクト全体へのリンクです。詳しく調べたい場合は、 http ://www.diredumplings.com/SerializationTesting.zip を参照してください。

アップデート:

The_Smallest : シリアライゼーションに投稿した Compress メソッドを使用してみました:

ただし、以前に srcStream.CopyTo(destStream) で発生したのと同じ問題が発生するようです。つまり、ストリームに書き込まれないようです。ディスクに保存しようとすると、結果は 0 kb のファイルになります。何か案は?

Pieter : デシリアライズ メソッドから MemoryStream を削除しましたが、以前と同じ機能を持っているようです。ただし、あなたが提案した方法でシリアル化を実装する方法がわかりません。これはあなたが考えていたことですか?

お二人ともありがとう!

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

json - ListでActivator.CreateInstanceを使用する方法DataContractJsonSerializerを使用してjsonを逆シリアル化する場合

私はこのjson文字列を逆シリアル化しています:

アイテムを表すクラスは次のとおりです。

MyClassのデフォルトのコンストラクターで、「_dtcreate」のデフォルト値を設定していることに注意してください。

したがって、私はこのコードを使用して、jsonをTの配列に逆シリアル化します。

json文字列を逆シリアル化すると、逆シリアル化された配列にプロパティ"_dtcreate"evaluedが見つかりませんでした。

DataContractJsonSerializerはMyClassのデフォルトコンストラクターを使用していないと思います。

使用できますか

配列「gType」に属するすべてのオブジェクトのインスタンスを作成して、逆シリアル化されたリストのすべてのオブジェクトがTクラスのdafaultコンストラクターで作成されるようにしますか?

どうもありがとう!

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

wpf - WPF BitmapImage シリアライゼーション/デシリアライゼーション

BitmapImages をシリアライズおよびデシリアライズしようとしています。このスレッドで見つけた、おそらく動作するメソッドを使用してきました: byte[] から WPF BitmapImage への変換でエラーが発生しましたか?

何が起こっているのかを繰り返すために、ここに私のシリアライゼーションコードの一部があります:

そして、ここに逆シリアル化コードがあります:

また、それが問題かどうかはわかりませんが、以前に辞書にデータを入力したときに、Bitmaps を PngBitmapEncoder でエンコードして BitmapImages に入れました。したがって、二重エンコーディングが関係しているかどうかはわかりません。これを行うメソッドは次のとおりです。

問題は、シリアライゼーションとデシリアライゼーションが正常に機能することです。エラーはなく、ディクショナリには BitmapImages と思われるエントリがありますが、デバッグ モードでそれらを見ると、幅/高さおよびその他のプロパティがすべて「0」に設定されています。もちろん、画像を表示しようとしても何も表示されません。

なぜそれらが適切に逆シリアル化されないのかについてのアイデアはありますか?

ありがとう!

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

c++ - ベクトル初期化のベクトル

ベクトルのベクトルを初期化する方法に頭を悩ませるのに苦労しています。

typedef vector< vector < vector < vector< float > > > > DataContainer;

これに準じてほしい

要素に対処することは問題ではありません。それは次のような単純なものでなければなりません

問題は、連続するアイテムを次のように配置する必要があるように、ファイルから順不同で入ってくるデータでそれを埋める必要があることです

そのため、事前に V の V を初期化する必要があります。

私は自分自身を気まぐれにしていますか、それともこれは簡単ですか

それはうまくいかないようです。どういうわけか、最上位のベクトルを最初に初期化する必要があります。

どんな助けでも感謝します。これは私が想像しているよりも簡単でなければならないと確信しています。

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

java - オブジェクトが正しく逆シリアル化されないのはなぜですか?

私は非常に単純なクラス階層を持っています:

Serializableを実装する LongIdDropdownOption の新しいインスタンスを作成すると、それをシリアル化します。次に、すぐに逆シリアル化します。逆シリアル化されたオブジェクトの両方のフィールドが null に設定されます。

基本クラスに Serializable を実装すると、コードが正しく機能し始めます。私の質問は...なぜですか?

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

c# - 配列のデシリアライズは常に null の配列を与える

ISerializable でシリアライズ可能/デシリアライズ可能にしたサブクラスを持つカスタム抽象基本クラスがあります。このクラスのサブクラスの単一インスタンスのシリアル化/逆シリアル化を行うと、すべて正常に動作します。ただし、それらの配列を実行すると、逆シリアル化で常に null の配列になります。シリアル化は BinaryFormatter で行われます。

アイテムは次の中に含まれています。

シリアル化では、これは SerializationInfo パラメータの GetObjectData で行われます。

逆シリアル化では、これはシリアル化コンストラクターでも SerializationInfo パラメーターで行われます。

逆シリアル化では常に null の配列が得られます。前述したように、次のコードで 1 つのアイテムを正しくシリアル化および逆シリアル化します。

シリアル化 (GetObjectData メソッド):

逆シリアル化 (シリアル化コンストラクター):

これはよくある問題ですか?少なくとも他の誰かがそれに遭遇したことはないようです。解決策があることを願っています :) より多くの情報/コードを提供する必要がある場合は、教えてください。

ありがとう!

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

silverlight - Silverlightで、生成されたLinqクラスにカスタムプロパティを追加し、イベントを管理します

WCFでLinqtoSQLクラスを使用しています。これらのクラスは、WCFメソッドからSilverlightに返されます。ここで、生成されたクラス(Silverlight側)にカスタムプロパティを追加し、別のプロパティからの別のPropertyChangedEventに基づいて、その特定のプロパティでPropertyChangedEventをトリガーします。明確にするために、これは機能しないコードの一部です:

問題は、New()のコードが実行されないため、ConnectionTypeがいつ変更されるかわからないため、ConnectionTypeEnumでPropertyChangedをトリガーできないことです。(このプロパティは一方向バインディングで使用されるため、必要です)

誰かがこれに対する解決策を持っていますか?

ありがとう

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

c# - オブジェクトを逆シリアル化した後に XML ファイルをロードするための XDocument インスタンスを作成する方法は?

Windows Phone 7 アプリケーションを開発しています。Windows Phone 7 アプリケーションは初めてです。XMLシリアライゼーションとデシリアライゼーションについては、次のリンクを参照しています。

http://www.codeproject.com/KB/windows-phone-7/wp7rssreader.aspx

上記のリンクでは、LoadFromIso() 関数が XML デシリアライゼーションに使用されています。上記のリンクでデシリアライズ後にxmlファイルをロードしたい。簡単な 1 つのケースでは、次のコードのようにこれを行うことができます。次のコードと同様に、上記のリンクに「doc」が必要です。次のコードでは、次のステートメントで LINQ to XML を使用して、XML ファイルに対してさまざまな操作を実行できます。

完全なコードは次のとおりです

同様に、LINQ to XML を使用して XML ファイルに対してさまざまな操作を実行できるように、オブジェクトを逆シリアル化した後に XDocument のインスタンスが必要です。LINQ to XML を使用して XML ファイルを読み込んで XML ファイルに対してさまざまな操作を実行できるように、XDocument のインスタンスを取得できるコードまたはリンクを教えてください。

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

c# - Webサービスから返されるオブジェクトをシリアル化するのにかかる時間を記録することは可能ですか?

呼び出しているWebサービスのパフォーマンスの問題をいくつか調べています。実際のWebサービスメソッド自体全体にタイムレコーディングコードを配置することができましたが、結果セットのシリアル化にかかる実際の時間が問題になる可能性があるように見えますか?

したがって、このデータのシリアル化にかかる時間を記録しようとしていますが、結果を得るのに苦労しています。

これが私たちが持っているウェブサービスメソッドの例です:

[OnSerializing()]および[OnSerialized()]属性で装飾されたメソッドを返されるクラスに配置しようとしましたが、これは機能しません。また、try..finallyブロックを使用してメソッドのタイミングをキャプチャしようとしましたが、これも実際のシリアル化時間を記録しているとは思いませんか?

独自のシリアライザーを実装する必要があるかもしれないと提案されていますが(タイミングを記録してから、とにかくデフォルトのシリアライザーを呼び出すだけです)、これが私が持っている唯一のオプションであるかどうか疑問に思っていましたか?

どんな考えでも大歓迎です。