.NET4 の Visual Studio 2010 で、ビルド プロセスの一部としてクラスをインスタンス化、生成、およびバイナリ シリアル化する良い方法はありますか? 相互に関連するクラスの複雑なセットを毎回同じ「起動状態」にロードするのに数秒かかるアプリケーションを作成しています。シリアル化されたイメージからそれらをロードできれば、ロード時間は実質的になくなります。
私の質問は XNA に関するものではありませんが、最近、XNA フレームワークで Xbox プログラミングをいじってみました。フレームワークは、私が説明したことを正確に実行する興味深い前処理機能 (コンテンツ パイプライン) を追加します。メイン アプリケーションの重要なクラスをインスタンス化し、データを取り込むことができます (ビルド時の事前処理中にのみ使用される別のコード ブロックを使用)。処理)、展開ファイルにシリアル化されます。このシリアル化されたバージョンは実行時に再ロードされ、初期化のパフォーマンスが大幅に向上します。(XNAでは、このプロセスにより、私の質問には関係のないバイトオーダーの変更など、ターゲットプラットフォームの微調整も可能になります。)
手動で逆シリアル化を開始する必要があることはわかっていますが、その程度まで自動化されないことはわかっています-私の懸念はビルド側にあります。
XNA フレームワーク以外の VS2010 にこのようなものはありますか? これは T4 スタイルの codegen ではありません (実行時処理が必要ですが、おそらく外部ファイルを読み取るよりもパフォーマンスが高いでしょう)。また、これらのクラスを作成してディスクにダンプする別のプロジェクトを作成するだけでよいかどうかもわかりません。後で別のプロジェクトでそれらを安全にリロードします (おそらくいくつかの実験が必要です)。XNA Framework プラグインには多くの XNA 固有の関係があり、ロード側のプロセスは XNA のみであるため、XNA Framework プラグインをハイジャックすることはできません。
手頃な価格のサードパーティのプラグインを検討することに注意してください (これに 30 ドルや 40 ドルを支払うつもりはありませんが、数百ドルもするツールを購入するつもりはありません)。