Files
SzmediTools/Szmedi.Toolkit.Revit/Assists/ConfigAssists.cs
2025-09-16 16:06:41 +08:00

54 lines
2.3 KiB
C#

using System;
using System.Configuration;
using System.IO;
using System.Reflection;
namespace Szmedi.Toolkit.Revit.Assists;
public class ConfigAssists
{
/// <summary>
/// 获取项目文件夹下的配置文件根据Key获取Value
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static string GetCfgValue(string key)
{
Assembly assembly = Assembly.GetCallingAssembly();
Uri uri = new(Path.GetDirectoryName(assembly.CodeBase) ?? string.Empty);
ExeConfigurationFileMap map = new()
{
ExeConfigFilename = Path.Combine(uri.LocalPath, assembly.GetName().Name + ".dll.config")
};
System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
//若路径存在则自动获取该路径
return config.AppSettings.Settings[key].Value;
}
/// <summary>
/// 保存到程序目录下的配置文件
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public static void SetCfgPairs(string key, string value)
{
Assembly assembly = Assembly.GetCallingAssembly();
Uri uri = new(Path.GetDirectoryName(assembly.CodeBase) ?? string.Empty);
ExeConfigurationFileMap map = new()
{
ExeConfigFilename = Path.Combine(uri.LocalPath, assembly.GetName().Name + ".dll.config")
};
System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
config.AppSettings.Settings[key].Value = value; //将用户选取的路径_path赋给app.config中的_path(名称自取)
//ConfigurationManager.OpenMappedExeConfiguration(map, 0).AppSettings.Settings["FamilyPath"].Value = SelectedPath;
config.AppSettings.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Modified); //将配置保存
ConfigurationManager.RefreshSection("appSettings"); //刷新配置文件
//if (Directory.Exists(config.AppSettings.Settings["FamilyPath"].Value))//判断配置的路径是否存在
//{
// dialog.SelectedPath = config.AppSettings.Settings["FamilyPath"].Value;//若路径存在则自动获取该路径
//}
}
}