c# 桌面程序配置存储类

public static class SettingHelper
{
    private static string getConfigPath()
    {
        var configFilePath = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
        var dir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), System.Windows.Forms.Application.ProductName);
        if(!Directory.Exists(dir))
            Directory.CreateDirectory(dir);
        var configPath = Path.Combine(dir, Path.GetFileName(configFilePath));
        if(!File.Exists(configPath))
            File.Copy(configFilePath, configPath);    
        return configPath;
    }

    public static void SaveSetting(string key, string value)
    {
        var configFileMap = new ExeConfigurationFileMap();
        configFileMap.ExeConfigFilename = getConfigPath();
        var config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
        var section = config.GetSection("appSettings") as AppSettingsSection;
        if (section.Settings[key] == null)
            section.Settings.Add(key, value ?? string.Empty);
        else
            section.Settings[key].Value = value ?? string.Empty;
        config.Save(ConfigurationSaveMode.Modified, true);
    }

    public static string GetSetting(string key, string defaultValue = "")
    {
        var configFileMap = new ExeConfigurationFileMap();
        configFileMap.ExeConfigFilename = getConfigPath();
        var config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
        var section = config.GetSection("appSettings") as AppSettingsSection;
        if (section.Settings[key] == null)
            return defaultValue;
        return section.Settings[key].Value;
    }
}

 

posted on 2024-04-10 12:33  空明流光  阅读(3)  评论(0编辑  收藏  举报

导航