public async Task <Result> Put([FromBody] AppSetting model) { // 由于涉及高级权限,影响系统运行,目前暂时控制系统用户才可以修改 // TODO 待优化 var user = await _workContext.GetCurrentOrThrowAsync(); if (user.Id != (int)UserWithId.System) { return(Result.Fail("您不是系统管理员!您没有操作权限")); } var setting = await _appSettingRepository.Query().FirstOrDefaultAsync(x => x.Id == model.Id && x.IsVisibleInCommonSettingPage); if (setting != null) { if (setting.FormatType == AppSettingFormatType.Json) { var type = Type.GetType(setting.Type); if (type == null) { return(Result.Fail("设置类型异常")); } var obj = JsonConvert.DeserializeObject(model.Value, type); if (obj == null) { return(Result.Fail("设置参数异常")); } } setting.Value = model.Value; var count = await _appSettingRepository.SaveChangesAsync(); if (count > 0) { await _appSettingService.ClearCache(setting.Id); _configurationRoot.Reload(); //if (setting.FormatType == AppSettingFormatType.Json) //{ // // 绑定方式 // // Singleton/Option // // 是否可以重新注入绑定?? // var type = Type.GetType(setting.Type); // if (type == null) // { // return Result.Fail("配置类型异常"); // } // //var obj = type.Assembly.CreateInstance(type.FullName); // var obj = Activator.CreateInstance(type); // //var pis = type.GetType().GetProperties(); // //foreach (var pi in pis) // //{ // // obj.GetType().GetField(pi.Name).SetValue(obj, objVal[pi.Name]); // //} // return Result.Ok(); //} } } return(Result.Ok()); }