ABP 读取配置文件
原文:
https://www.cnblogs.com/lishidefengchen/p/10688312.html
需求
以前分部分项是从数据库里面查出来的,现在改为调用另一个项目的接口
赶时间就尽量微调,速度为主
百度找到了一篇文章,原以为可以白嫖的,结果我用的位置不一样,我是要在Application层读取配置,不是在web层读
主要参考的这里
1、定义接口和初始化
private readonly IRepository<Project, int> _entityRepository;
private readonly IHostingEnvironment _env;
private readonly IConfigurationRoot _appConfiguration;
/// <summary>
/// 构造函数
///</summary>
public ProjectAppService(
IRepository<Project, int> entityRepository
, IHostingEnvironment env
)
{
_entityRepository = entityRepository;
_env = env;
_appConfiguration = GetAppConfiguration(env.ContentRootPath);
}
private IConfigurationRoot GetAppConfiguration(string path)
{
var builder = new ConfigurationBuilder()
.SetBasePath(path)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
builder = builder.AddEnvironmentVariables();
return builder.Build();
}
2、获取配置项里面的url地址
//获取分部分项树2 for jstree by gxy 2020-2-28 16:08:13
[Abp.Web.Models.DontWrapResult]
public List<JsTreeResponseOutput2> GetProjectTrees2(string id)
{
//// 访问本地数据库
//if (string.IsNullOrWhiteSpace(id) || (id == "#"))
//{
// return GetTree();
// //return GetThreeRoot();
//}
//else
//{
// return GetAllChildren(int.Parse(id));
//}
// 访问远程数据库-兰州中通道质量管理系统
using (var httpClient = new HttpClient())
{
//var requestUri = "http://localhost:58059/SystemManage/Project/GetProjectsForBIMMP?id=" + id;
var requestUri = _appConfiguration["SubSystem:ProjectUrl"] + "?id=" + id;
var httpResponseMessage = httpClient.GetAsync(requestUri).Result.Content.ReadAsStringAsync().Result;
var list = JsonConvert.DeserializeObject<List<JsTreeResponseOutput2>>(httpResponseMessage);
return list;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构