From 3b1dd7d61c5dbc2f094a9eeac879cd48faef171f Mon Sep 17 00:00:00 2001 From: "k.12f" Date: Tue, 24 Sep 2024 13:07:15 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E8=B7=AF=E5=BE=84=EF=BC=8C=E9=87=8D=E5=90=AF?= =?UTF-8?q?=E5=90=8E=E5=A4=B1=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/AppConfigService.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/BlueCatKoKo.Ui/Services/AppConfigService.cs b/src/BlueCatKoKo.Ui/Services/AppConfigService.cs index ecbfe82..0eac5dd 100644 --- a/src/BlueCatKoKo.Ui/Services/AppConfigService.cs +++ b/src/BlueCatKoKo.Ui/Services/AppConfigService.cs @@ -1,3 +1,4 @@ +using System.Configuration; using System.IO; using BlueCatKoKo.Ui.Models; using Newtonsoft.Json; @@ -27,21 +28,25 @@ private static string Absolute(string relativePath) return Path.Combine(StartUpPath, relativePath); } - public void Write(AppConfig config) + public void Write(AppConfig appConfig) { _rwLock.EnterWriteLock(); try { - var path = Absolute(config.DownloadPath ?? "./"); + var path = Absolute(appConfig.DownloadPath ?? "./"); if (!Directory.Exists(path)) Directory.CreateDirectory(path); var file = Path.Combine(StartUpPath, _appSettingsFile); _logger.Information("保存配置文件:{file}", file); - _logger.Information("保存配置内容:{@config}", config); - var appSettings = File.ReadAllText(file); - var appSettingsObj = JObject.Parse(appSettings); - appSettingsObj[nameof(AppConfig)] = JsonConvert.SerializeObject(config); - File.WriteAllText(file, appSettingsObj.ToString()); + _logger.Information("保存配置内容:{@config}", appConfig); + var appSettingsJson = File.ReadAllText(file); + var appSettings = JsonConvert.DeserializeObject(appSettingsJson); + if (appSettings is null) + { + throw new ConfigurationErrorsException("解析配置文件失败"); + } + appSettings.AppConfig = appConfig; + File.WriteAllText(file, JsonConvert.SerializeObject(appSettings)); } catch (Exception e) {