获取默认或用户配置

时间:2013-06-04 07:09:54

标签: c# configuration user-config

我想设置以下行为:

我的应用程序使用通过ConfigDesigner创建的配置文件。因此我创建了一个默认配置

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;
        }
    }
  }
 }

通过MyConfig.Default.Size通过电话,我获得了值,该值存储在MyApp.exe.config上。

但是现在我想决定运行时(如果允许用户使用Bool,那么这些MyApp.exe.config可能会多次更改)。所以我将我的MyConfig.Default - 属性的setter更改为:

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 */
            }
        }
    }

但我不知道,如何返回默认配置。 我知道,有可能Reset()配置,但我不想重置配置存储的文件。我只想返回默认值。 我还找到了一个通过MyConfig.Default.Properties["NAME"].DefaultValue返回一个默认值的解决方案,但是通过使用它,我不能使用像MyConfig.Default.Size这样的配置值。

获取默认配置或用户配置的最佳解决方案是什么?

0 个答案:

没有答案