2013-07-29 222 views
1

id沒有發現任何關於Stackoverflow或互聯網上,如果這個問題已經發布(或者如果它根本不可能),很抱歉。更改設置值的默認值

有沒有辦法來改變* .settigs屬性的默認值,例如,如果我有設定「USER」

[global::System.Configuration.UserScopedSettingAttribute()] 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     [global::System.Configuration.DefaultSettingValueAttribute("TESTUSER")] 
     public string SQLServer { 
      get { 
       return ((string)(this["USER"])); 
      } 
      set { 
       this["USER"] = value; 
      } 
     } 

會有一種方法來改變(在運行時)的DefaultSettingValueAttribute(「TESTUSER」)爲另一個值(即:「John Doe」)。

在此先感謝

+0

究竟是什麼你想實現什麼?做你想做什麼的目的是什麼? –

+0

我想要實現,如果程序調用XXX.Properties.Settings.Default.Reset()用戶聲明的設置將被加載,而不是「我的」devdefaultsettings。這個程序被用來保存服務器連接字符串,所以如果新的連接字符串不工作(出於任何原因),你可以調用settings.Default.Reset(),你會得到你早先的工作設置。目前我將早期的連接字符串保存在自己的文件中,但這似乎不是最優雅的解決方案。 – BudBrot

回答

3

您可以覆蓋ApplicationSettingsBase類的Properties屬性:

public override SettingsPropertyCollection Properties 
{ 
    get 
    { 
     var properties = base.Properties; 
     properties["SQLServer"].DefaultValue = 
      String.Format("John Doe {0}", DateTime.Now); 
     return properties; 
    } 
} 
+0

非常感謝你:)工作得很好。 – BudBrot