title: Get default or user configuration
body: <p>I want to set up following behaviour :</p>
  
  <p>My Application uses a config file, created through the ConfigDesigner. Therefor I created a Default-Configuration</p>
  
  <pre><code>namespace MyApp.Configuration {
  
  
  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
  public sealed partial class MyConfig: global::System.Configuration.ApplicationSettingsBase {
  
  
      [global::System.Configuration.UserScopedSettingAttribute()]
      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
      [global::System.Configuration.DefaultSettingValueAttribute("100")]
      public double Size{
          get {
              return ((double)(this["Size"]));
          }
          set {
              this["Size"] = value;
          }
      }
    }
   }
  </code></pre>
  
  <p>Through a call via <code>MyConfig.Default.Size</code>, I get the Value, which is stored on <code>MyApp.exe.config</code>.</p>
  
  <p>But now I want to decide on runtime (it's possible that these <code>Bool</code> can change multiple times), if the user is allowed to use the <code>MyApp.exe.config</code>. So I changed the setter of my <code>MyConfig.Default</code>-Property to:</p>
  
  <pre><code>private static MyConfig userInstance = ((MyConfig)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new MyConfig())));
  public static MyConfig Default
      {
          get
          {
              if(ConfigIsAllowed)
                  return userInstance;
              else
              {
                  /* Here I wanna return the default-values */
              }
          }
      }
  </code></pre>
  
  <p>But I have no idea, how to return the default configuration.
  I know, that there is a possibility to <code>Reset()</code> the config, but I don't want to reset the File, where config is stored. I only want to return default values.
  I also found a solution to return one default value via <code>MyConfig.Default.Properties["NAME"].DefaultValue</code>, but by using this, I can't use a configvalue like <code>MyConfig.Default.Size</code>.</p>
  
  <p>What is the best soltuion to get a default config or the user config?</p>