カスタム シリアル化に頼らずに、カスタム オブジェクトの ArrayList をアプリケーション ユーザー設定に保存することは可能ですか?
たとえば、パブリックな get/set プロパティとプライベート バッキング フィールドのみを含む基本的なデータ クラスがあるとします。
[Serializable]
class SimpleClass()
{
...
}
次のコードを実行してからアプリケーションを再起動すると、MyList という名前の ArrayList 設定が常に null になります。つまり、保存されませんでした。
if (Properties.Settings.Default.MyList==null)
{
Properties.Settings.Default.MyList=new ArrayList();
}
Properties.Settings.Default.MyList.Add(new SimpleClass(DateTime.Now.ToString()));
Properties.Settings.Default.Save();
ArrayList は型指定されていないことに気付きました。オブジェクトのコレクションを保持します。ただし、各オブジェクトで GetType() を使用して実際の型を判断するのは簡単です。これにより、シリアル化が可能になるはずですよね?
また、カスタムのシリアル化を実行してこれを回避する方法も知っています。単純な状況でははるかに便利なため、これが機能していないように見えるのはただの苦痛です。
何か案は?