SettingsProviderクラスから継承する独自のクラスを実装しました。私が検索している値がユーザによって設定されていない場合、すなわち、プログラムがはじめて起動する場合、私はデフォルト値を取得しようとします。私が見ている問題は、デフォルト値がSettingsPropertyから取得され、文字列として返される場合です。私は項目を変換するいくつかのコードを追加しようとしましたが、System.Drawing.Colorsを変換するときに問題が発生しています。 "System.Drawing.Color 'に' System.String 'から' Invalid cast 'を受け取りました。どのように私はきちんと正しい型にデフォルト値を変換することができカスタム設定プロバイダとデフォルト値の取得
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);
}
:ここ
は、私は、デフォルト値を取得するために使用していますコードの例ですか?