私は.Net 2を使用しており、通常の方法で設定を保存しています。カスタム オブジェクトを xml にシリアル化して保存します。プロパティのデフォルト値を取得しようとしています (ただし、他のプロパティをリセットせずに)。私が使う:
ValuationInput valuationInput = (ValuationInput) Settings.Default.Properties["ValuationInput"].DefaultValue;
しかし、ValuationInput ではなく文字列を返すようで、例外がスローされます。
私はうまく動作する簡単なハックを作りました:
string valuationInputStr = (string)
Settings.Default.Properties["ValuationInput"].DefaultValue;
XmlSerializer xmlSerializer = new XmlSerializer(typeof(ValuationInput));
ValuationInput valuationInput = (ValuationInput) xmlSerializer.Deserialize(new StringReader(valuationInputStr));
しかし、これは本当に醜いです - すべてのツールを使用して強く型付けされた設定を定義する場合、デフォルト値を自分でシリアル化したくありません。現在の値を読み取るのと同じ方法で読み取りたいと思います。ValuationInput valuationInput = Settings.Default.ValuationInput;