亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

.net core 2x web項目中json配置文件的使用

標簽:
Java

在.net core 2x 版本中,可以从以下源获取配置(app configuration)信息:

  • Azure Key Vault

  • Command-line arguments

  • Custom providers (installed or created)

  • Directory files

  • Environment variables

  • In-memory .NET objects

  • Settings files

今天要说的是最后一种,从json配置文件中读取。

1. 首先建立appsettings.json配置文件

工程目录右键-搜索框中输入.json,建立文件

webp

image.png


可以看到文件中自动添加了文件,并初始化了数据库连接字符串:


{ 
  "DatabaseSettings": {    "ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}

再次重复这个过程,添加appsettings.Development.jsonappsettings.Production.json文件。

{  "ApplicationSettings": {    "BaseUrl": "yourawesomewebsite.com",    "ApplicationName": "My Site",    "Version": "0.0.1",    "Enviroment": "Development"
  }
}
{  "ApplicationSettings": {    "BaseUrl": "yourawesomewebsite.com",    "ApplicationName": "My Site",    "Version": "0.0.1",    "Enviroment": "Production"
  }
}

两个文件的不同仅仅是Enviroment字段

2. 工程设置

Startup.cs中添加构造函数:

 public IConfiguration Configuration { get; set; }        public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                  .SetBasePath(env.ContentRootPath)
                  .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                  .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: false, reloadOnChange: true)
                  .AddEnvironmentVariables();
            Configuration = builder.Build(); 
        }

我们把所有的json文件都添加到了Configuration中,接下来,我们要建立一个AppSettings类,用来承载读取到的配置信息:
在工程文件夹下建立Models文件夹,建立一个类AppSettings.js

    public class AppSettings
    {
        public string BaseUrl { get; set; }        public string ApplicationName { get; set; }        public string Version { get; set; }        public string Enviroment { get; set; }
    }

和json文件的字段一一对应。
然后,在ConfigureServices方法中,添加ApplicationSettings字段:

        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<AppSettings>(Configuration.GetSection("ApplicationSettings"));
            services.AddMvc();
        }

3. 使用配置信息

在任何一个Controller中,使用依赖注入拿到配置信息:

   public class UserController : Controller
    {        private readonly AppSettings _appSettings;        public UserController(IOptions<AppSettings> appSettings)
        {
            _appSettings = appSettings.Value;
        }        public IActionResult Login()
        {
            ViewBag.appName = _appSettings.ApplicationName;            return View();
        }
}

我们把setting中的ApplicationName字段传到了前台:

//前端代码 <div class="login-logo">
            <a ><b>@ViewBag.appName</b></a>
        </div>

webp

image.png

任何时候,我们只要在工程启动参数中改变enviroment的值,就能改变工程参数设置,使用不同的json配置:

webp

image.png



作者:Angeladaddy
链接:https://www.jianshu.com/p/606134200187


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消