zoukankan      html  css  js  c++  java
  • .net core读取配置文件appsetting.json内容

    appsetting.json内容

    //省略部分代码...
    //代码生成相关
      "CodeCreatorInfo": {
        "xmlPath": "11111", //xml路径(绝对路径)
        "jsRootPaht": "2222", //js文件夹路径
        "Controllers": "333", //特殊Controller列表,逗号隔开
        "NameSpace": "4444" //有效命名空间:"App.Web."之后的内容,主要用于多项目的项目,以逗号分隔,例如:APIControllers1,APIControllers2
      } 
    //省略部分代码...

    方法一:控制器中获取json,采用依赖注入的方式

    1、引用库

    using Microsoft.Extensions.Configuration;

    2、使用接口服务:IConfiguration

    注:观察这个类,这已经被 CodeCreatorController 自动注入了,无需手动做注入操作

    using Microsoft.Extensions.Configuration;
    
    namespace App.Web.APIControllers
    {
        /// <summary>
        /// js代码生成接口
        /// </summary>
        [Route("api/[controller]/[action]")]
        [ApiController]
        public class CodeCreatorController : BaseAPIController1
        {
            /// <summary>
            /// 自动注入
            /// </summary>
            /// <param name="configuration"></param>
            public CodeCreatorController(IConfiguration configuration)
            {
                _configuration = configuration;
            }
            public IConfiguration _configuration { get; }
    
    
            /// <summary>
            /// 获取XML文档内容,生成js文件内容,生成两种,分别用于页面和小程序
            /// </summary>
            [HttpGet]
            public JsonResult CreateJsByXML()
            {
                //获取appsettiong配置内容
                var CodeCreatorInfo = _configuration.GetSection("CodeCreatorInfo");
                string xmlPath = _configuration.GetSection("CodeCreatorInfo")["xmlPath"];
                
                /*
                省略部分代码            
                */
            }
        }
    }

    注意:如果项目中需要用到反射,此时对应当前 Controller  的反射时会出错。可以使用方法二

    方法二:在.net core 类库中读取json文件

    1、添加引用:

    using System.Configuration;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.Json;

    2、加载配置文件的服务类:

      /// <summary>
        /// 获取appsetting的服务类
        /// </summary>
        public class AppConfigurtaionServices
        {
            public static IConfiguration Configuration { get; set; }
            static AppConfigurtaionServices()
            {
                //ReloadOnChange = true 当appsettings.json被修改时重新加载            
                Configuration = new ConfigurationBuilder()
                //.SetBasePath(Directory.GetCurrentDirectory())
                //AppDomain.CurrentDomain.BaseDirectory是程序集基目录,所以appsettings.json,需要复制一份放在程序集目录下,
                .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
                .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })
                .Build();
            }
        }

    3、获取数据:

    /*省略部分代码*/ 
    //类库中读取:两种取值方式【OK】
    var xmlPath = AppConfigurtaionServices.Configuration.GetSection("CodeCreatorInfo:xmlPath").Value;
    var jsRootPaht = AppConfigurtaionServices.Configuration.GetSection("CodeCreatorInfo").GetSection("jsRootPaht").Value;
    var Controllers = AppConfigurtaionServices.Configuration.GetSection("CodeCreatorInfo").GetSection("Controllers").Value;
    var NameSpace = AppConfigurtaionServices.Configuration.GetSection("CodeCreatorInfo").GetSection("NameSpace").Value;
    var ControllersArray = Controllers.Split(',');
    var NameSpaceArray = NameSpace.Split(',');
    /*省略部分代码*/ 
  • 相关阅读:
    Note/Solution 转置原理 & 多点求值
    Note/Solution 「洛谷 P5158」「模板」多项式快速插值
    Solution 「CTS 2019」「洛谷 P5404」氪金手游
    Solution 「CEOI 2017」「洛谷 P4654」Mousetrap
    Solution Set Border Theory
    Solution Set Stirling 数相关杂题
    Solution 「CEOI 2006」「洛谷 P5974」ANTENNA
    Solution 「ZJOI 2013」「洛谷 P3337」防守战线
    Solution 「CF 923E」Perpetual Subtraction
    KVM虚拟化
  • 原文地址:https://www.cnblogs.com/dyhao/p/13065774.html
Copyright © 2011-2022 走看看