CArchive を使用してオブジェクト構造をファイルにシリアル化する既存のアプリケーションがあります。CArchive の使用をいくつかのカスタム クラスに置き換えて、物事がシリアル化されるのと同じ方法でデータベースに書き込むことができるかどうか疑問に思っています。これが実行可能かどうかを判断する前に、他の人が同じことをしたかどうか疑問に思っていました.この問題への最善のアプローチは何ですか? 既存のオブジェクト構造がシリアル化されたファイルではなく、データベースに対して単純に読み書きできるように、CArchive の使用に代わるドロップインを作成できるようにしたいと考えています。各クラスの Serialize メソッドを上書きするのと同じくらい簡単ですか?
1 に答える
0
簡単な答え: 忘れてください。
より長い答え:
CArchive には単一の仮想メンバーがありません。デストラクタでさえ仮想ではありません。つまり、そのクラスから派生することは想定されていません (C# プログラマは seal と言います)。
CArchive の作業をカスタマイズする (CDocument のシリアル化コード全体を書き直すことなく) 考えられる可能性は 1 つだけです。データ接続を処理する CFile 派生クラスへのポインターを渡すことによって、CArchive オブジェクトを構築します。
そこから、CFile の Read() と Write() をオーバーライドするだけでデータベースを制御する方法は、私の想像を超えています :-(
于 2008-11-10T21:41:04.573 に答える