using IniParser; using SWS.Commons; using System; using System.IO; using static System.Collections.Specialized.BitVector32; namespace SWS.Service { public class ConfigService { public string path = Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Roaming\BricsCAD Electrical\Config\AppConfig.ini"); public FileIniDataParser parser = new FileIniDataParser(); public HttpService _httpService; /// /// config.ini 给默认值,且创建出来 /// void SetDefaultConfigValue() { if (!File.Exists(path)) { //默认值 var data = parser.Parser.Parse(""); data["Profile"]["strIPAddress"] = "1.117.161.11"; data["Profile"]["nPort"] = "8080"; string userProfilePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); data["Profile"]["strLocalWorkDir"] = $"{userProfilePath}\\AppData\\Roaming\\BricsCAD Electrical"; Directory.CreateDirectory(Path.GetDirectoryName(path)); parser.WriteFile(path, data); GlobalObject.isConfigIniCreateBySys = true; } else { GlobalObject.isConfigIniCreateBySys = false; } } public ConfigService(HttpService httpService) { _httpService = httpService; SetDefaultConfigValue(); string address; int port; string locDrawingPath; Read(out address, out port, out locDrawingPath); _httpService.Init(address, port); } public void Read(out string address, out int port, out string directory) { //var data = parser.ReadFile(path); //address = data["Profile"]["strIPAddress"]; //port = int.Parse(data["Profile"]["nPort"]); //directory = data["Profile"]["strLocalWorkDir"]; address = IniHelper.ReadValueFromIniFile("Profile", "strIPAddress"); string portString = IniHelper.ReadValueFromIniFile("Profile", "nPort"); int.TryParse(portString?.Trim(), out port); //port = int.Parse(IniHelper.ReadValueFromIniFile("Profile", "nPort")); directory = IniHelper.ReadValueFromIniFile("Profile", "strLocalWorkDir"); } /// /// 查询某个 /// /// /// public string Read(string keyName) { //var data = parser.ReadFile(path); //return data["Profile"][keyName]; var data = IniHelper.ReadValueFromIniFile("Profile", keyName); return data; } /// /// 查询某个 /// /// 节点 /// key名称 /// public string Read(string session, string keyName) { try { //var data = parser.ReadFile(path); //return data[session][keyName]; var data = IniHelper.ReadValueFromIniFile(session, keyName); return data; } catch { return null; } } /// /// 保存某个 /// /// /// public void Save(string keyName, string value) { //var data = parser.ReadFile(path); //data["Profile"][keyName] = value; //parser.WriteFile(path, data); IniHelper.WriteValueFromIniFile("Profile", keyName, value); } /// /// 保存某个值 /// /// 节点 /// key名称 /// 值 public void Save(string session, string keyName, string value) { //var data = parser.ReadFile(path); //data[session][keyName] = value; //parser.WriteFile(path, data); IniHelper.WriteValueFromIniFile(session, keyName, value); } } }