我已经实现了自己的类,该类继承自SettingsProvider类。如果用户没有设置我正在检索的值,即这是程序第一次启动,我会尝试获取默认值。我看到的问题是,当从SettingsProperty检索默认值时,它会以字符串的形式返回。我试图添加一些转换该项的代码,但在转换System.Drawing.Colors时遇到问题,并且收到错误“从System.String到System.Drawing.Color的强制转换无效”。
以下是我用来获取默认值的代码示例:
private object GetDefaultValue(SettingsProperty setting)
{
if (setting.PropertyType.IsEnum)
return Enum.Parse(setting.PropertyType, setting.DefaultValue.ToString());
// Return the default value if it is set
if (setting.DefaultValue != null)
return Convert.ChangeType(setting.DefaultValue, setting.PropertyType);
else // If there is no default value return the default object
return Activator.CreateInstance(setting.PropertyType);
}
如何将默认值正确转换为正确的类型?