using System; using System.Configuration; using System.IO; using System.Reflection; namespace Szmedi.Toolkit.Revit.Assists; public class ConfigAssists { /// /// 获取项目文件夹下的配置文件根据Key获取Value /// /// /// 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; } /// /// 保存到程序目录下的配置文件 /// /// /// 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;//若路径存在则自动获取该路径 //} } }