2013-07-29 2 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() Параметры, объявленные пользователем, будут загружены, а не «мои» параметры devdefault. Эта программа используется для сохранения serverconnectionstrings, поэтому, если новая connectionstring не работает (по какой-либо причине), вы можете просто вызвать settings.Default.Reset(), и вы вернете свои предыдущие, рабочие настройки. В настоящий момент im сохраняет предыдущие строки подключения в собственном файле, но это, похоже, не самое элегантное решение. – BudBrot

ответ

3

Вы можете переопределить Properties свойство ApplicationSettingsBase класса:

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

Спасибо большое :) Очень хорошо работает. – BudBrot

Смежные вопросы