Я реализовал свой собственный класс, который наследуется от класса SettingsProvider. Если значение, которое я получаю, не было установлено пользователем, то есть это первый раз, когда программа запускается, я пытаюсь получить значение по умолчанию. Проблема, которую я вижу, - это когда значение по умолчанию извлекается из параметра SettingsProperty, которое возвращается в виде строки. Я попытался добавить код, который преобразует элемент, но у меня возникают проблемы при преобразовании System.Drawing.Colors и я получаю сообщение об ошибке «Недопустимый листинг из« System.String »в« System.Drawing.Color ».».Custom SettingsProvider и получение значения по умолчанию
Вот пример кода, который я использую, чтобы получить значение по умолчанию:
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);
}
Как правильно преобразовать значение по умолчанию для правильного типа?