-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConfigHelper.cs
81 lines (68 loc) · 3.14 KB
/
ConfigHelper.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System;
using System.Configuration;
using System.IO;
namespace Neo.SizeCalculator
{
internal class ConfigHelper
{
// 获取配置文件路径的私有方法,避免重复代码
private static string GetConfigFilePath()
{
return AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
}
// 获取配置值的方法
public static string GetConfigValue(string key)
{
string configFilePath = GetConfigFilePath();
// 检查配置文件是否存在,如果不存在则创建一个新的配置文件并使用默认值
if (!File.Exists(configFilePath))
{
CreateDefaultConfigFile(configFilePath);
}
// 读取配置文件中的值
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap { ExeConfigFilename = configFilePath };
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
KeyValueConfigurationElement settings = config.AppSettings.Settings[key];
return settings != null ? settings.Value : string.Empty;
}
// 保存配置值的方法
public static void SaveConfigValue(string key, string value)
{
string configFilePath = GetConfigFilePath();
// 检查配置文件是否存在,如果不存在则创建一个新的配置文件并使用默认值
if (!File.Exists(configFilePath))
{
CreateDefaultConfigFile(configFilePath);
}
// 读取配置文件
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap { ExeConfigFilename = configFilePath };
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
// 更新或添加配置值
if (config.AppSettings.Settings[key] != null)
{
config.AppSettings.Settings[key].Value = value;
}
else
{
config.AppSettings.Settings.Add(key, value);
}
// 保存配置更改
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
// 创建默认配置文件的方法
private static void CreateDefaultConfigFile(string configFilePath)
{
// 创建一个新的配置文件对象
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.File = null; // 确保没有外部文件引用
// 添加默认配置值
// 这里可以根据需要添加更多的默认配置项
config.AppSettings.Settings.Add("sizePresets", "512,682,768,1024");
config.AppSettings.Settings.Add("sourceSizePresets", "512x768,768x1024");
// 保存配置文件
config.SaveAs(configFilePath, ConfigurationSaveMode.Full, true);
ConfigurationManager.RefreshSection("appSettings");
}
}
}