Я реализовал свой собственный класс, который наследуется от класса SettingsProvider. Если полученное мной значение не было задано пользователем, то есть это первый раз, когда программа запускается, я пытаюсь получить значение по умолчанию. Проблема, которую я вижу, заключается в том, что когда значение по умолчанию извлекается из свойства настройки, оно возвращается в виде строки. Я попытался добавить некоторый код, который преобразует элемент, но у меня возникают проблемы при преобразовании 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);
}
Как правильно преобразовать значение по умолчанию в правильный тип?