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;
            }
        }
posted @   古兴越  阅读(1872)  评论(0编辑  收藏  举报
编辑推荐:
· 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语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示