我正在使用 .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;