2009-08-13 11 views

答えて

1

XMLSerializerクラスを介して。

そしてhereはそれを行う方法の良い例です。

コントロールのシリアル化ができないため、hereはその問題を回避する方法です。

編集:ここではXMLシリアル化を行う方法の2つの例です:あなたが何をしようとして行うには、正確なコードについては
http://www.dotnetjohn.com/articles.aspx?articleid=173
http://devhood.mit.edu/Tutorials/tutorial_details.aspx?tutorial_id=236

は、私たちが実際にしていることを今実現XMLSerializerのやり方と少し違うBinaryFormatterを使っているので、コードを提供することはあなたにとって役に立たないでしょう。ただし、アルゴリズムは本質的に:

  1. 保存するコントロールから必要なプロパティ情報(高さ、幅など)を取得し、その目的で作成したクラスにこれらのデータを保存します。
  2. XMLSerializerのSerializeメソッドを使用してクラスを格納します。
  3. 再度コントロールをロードする必要がある場合は、XMLSerializerのDeserializeメソッドを使用して、以前に保存したクラスを読み込みます。
  4. 「復活」しようとしているコントロールの新しいインスタンスを作成し、作成したクラスの適切なプロパティをコントロールにコピーします。
+0

大丈夫、私はクラス全体ではなく、特定のプロパティをシリアライズできますか?たとえば、リストビューコントロールの列見出しの幅? –

+0

はい。私は制御プロパティの小さなサブセットを使用します(私はそれらを "スタブ"クラスに保存し、保存したい情報だけをコピーします)。そして、そのクラスを直列化します。私が必要になったら、サブセットクラスを非直列化し、新しいコントロールを作成し、次に保存した設定に基づいてコントロールのプロパティを変更します。 –

+0

あなたはそれをどうやって正確に行いますか?あなたは私に例を教えていただけますか? –

関連する問題