問題タブ [serialization]
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.
ruby - ActiveRecord のシリアル化によってデータがランダムに破損するのはなぜですか?
serialize
1 つのActiveRecord
モデルで使用してArray
、単純なハッシュをテキスト データベース フィールドにシリアル化します。Array
2 番目のパラメーターを使用して、逆シリアル化をsに強制します。
正常に動作しているように見えますが、いくつかのリクエストの後、の内容が配列ではなくハッシュにrecipients
変わります。HashOfIndifferentAccess
これは、モデルを数回リロードした後にのみ発生し、テストやコンソールでは再現できず、本番環境でのみ再現できました。
c - long 配列のシリアル化 (C)
Cプログラムでは、シリアライズしたい(したがって、charに変換する)long *があります。long は単一の文字に収まらず、サイズはプロセッサによって異なります (4 バイトまたは 8 バイトの場合があります)。
シリアライゼーションとデシリアライゼーションを行う良い方法はありますか?
.net - コントロールのプロパティをシリアル化できません
バックグラウンド
VB.NET で作成したビジネス オブジェクトのコピーを作成しようとしています。ICloneable インターフェイスを実装し、Clone 関数で、BinaryFormatter を使用してオブジェクトをシリアル化し、関数から返される別のオブジェクトに逆シリアル化して、オブジェクトのコピーを作成します。
シリアル化しようとしているクラスは、クラス内に含まれる子オブジェクトと共に「シリアル化可能」としてマークされています。
次のようなコードを記述して、clone メソッドが機能することをテストしました。
この時点ですべて正常に動作します。
問題
サード パーティ コントロールから継承するカスタム Windows フォーム コントロールがあります。このカスタム コントロールには基本的に、複製したいオブジェクトが含まれています (このオブジェクトは最終的にサード パーティ コントロールにフィードするため)。
Windowsフォームコントロール内にオブジェクトのクローンを作成して、変更をキャンセルしてオブジェクトを変更前の状態に戻すオプションを使用しながら、ユーザーがプロパティを操作できるようにしたいと考えています。ユーザーが変更を開始する前にオブジェクトのコピーを取り、それを保持して、キャンセルを押したときに準備できるようにしたいと思います。
私の考えは、次の行に沿ってコードを書くことです。
次に、ユーザーが のプロパティを操作できるようにしますMyControl.Sheep
。ただし、これを実行しようとすると、clone メソッドは次のような例外をスローします。
アセンブリ 'My_Assembly_Info_Here' のタイプ 'MyControl' は、シリアル化可能としてマークされていません
このエラーは、 を呼び出した時点でスローされますBinaryFormatter.Serialize(stream,Me)
。
MyControl
オブジェクトのコピーを返すメソッドを作成し、最初MyControl.Sheep
に別の変数に割り当ててから変数を複製しようとしましたが、何も機能していないようです。ただし、オブジェクトの新しいインスタンスを直接作成して複製することは問題なく機能します。
私が間違っているところはありますか?
解決
マークの答えは、これについて正しい方向に私を向けるのに役立ちました. Rocky Lhotka の このブログ投稿では、問題とその解決方法について説明しています。
serialization - インメモリデータ構造に耐久性を追加する
メモリ内のデータ構造に耐久性を追加するために採用できる一般的な手法のいくつかは何ですか(つまり、プロセスがクラッシュした場合、そのデータ構造で以前に実行されたすべての操作を保持できますか?
データ構造にタプルのリストだけが含まれている場合は、それらをSQL DBに格納するだけで、耐久性が無料になります。しかし、私のデータ構造がグラフまたはツリーだった場合はどうなりますか?
私が考えることができる1つのことは、すべての操作をディスクに明示的にログに記録し(追加のみのログ)、クラッシュが発生した場合は、ログを再生して前の状態を保持することです。ログが大きくなりすぎると、圧縮ステップが発生します。これは、データベースエンジンが耐久性のために内部的に行うことだと思います(チェックポイントはこのプロセスと呼ばれるものです)?
ところで、これはデータセット全体がメモリに収まらないシナリオではないことに注意してください。
.net - プリンター設定の永続化
.Net でプリンター設定を永続化/保存する最良の方法は何ですか? PrinterSetting
オブジェクトのシリアル化で.Net 1.1にバグがあり、いくつかの回避策がありましたが、フレームワークの最近のバージョンでこれを行うためのより良いまたは簡単な方法がないかどうか疑問に思っています.
主な使用例は、ユーザーが標準のプリンター設定ユーザー インターフェイスを使用して、特定のプリンターのすべての印刷詳細 (プリンター固有のオプションを含む) を定義し、それらを保存して、次にユーザーがそのプリンターで印刷するときに復元できるようにすることです。プリンター。
wcf - SettingsContext と SettingsPropertyCollection をシリアル化する方法
独自のプロファイル プロバイダーを実装しているため、型System.Configuration.SettingsContext
と型をシリアル化する必要があります。System.Configuration.SettingsPropertyCollection
最も簡単な方法でそれを行う方法に関する提案。
wcf - System.Configuration.SettingsProperty をシリアル化する方法
WCF を介して System.Configuration.SettingsProperty および System.Configuration.SettingsPropertyValue クラス オブジェクトをシリアル化する必要があります。
.net - WCF データコントラクト
内部クライアント用にホストされている WCF サービスがあります。すべてのクライアントを制御できます。したがって、データ コントラクト ライブラリを使用して、プロキシ生成の必要性をなくします。いくつかの読み取り専用プロパティを使用し、デフォルト コンストラクターのないデータ コントラクトを使用したいと考えています。ご協力いただきありがとうございます...
java - Java:不明なArraysizeのシリアル化
アレイを安全にしてリロードした場合、サイズが不明な場合にサイズを取得する可能性はありますか?ありがとう
.net - 特定の .NET タイプのシリアライゼーションのオーバーライド
このクラスの例を検討してください:
私自身のルールに従って、クラスで宣言された DateTime のシリアル化を変更したいと思います。このクラスのメンバーは頻繁に変更されるため、変更ごとにカスタム シリアライザーを維持したくありません。また、この動作をサブクラスに継承し、すべてのカスタム シリアライザーをコーディングしないようにしたいと考えています。シリアル化は Web サービスによって出力されています。助けてくれてありがとう!