.net core - 配置


配置
配置是程序中经常用到的一个东西,一般用的都是配置文件。
再 asp.net mvc 中,经常用到 web.config 文件,有时候,也会把配置写在 json 文件中。
在 .net core 中,新增了一些类,专门来读取配置文件的。
先安装包:microsoft.aspnetcore
然后引入命名空间: Microsoft.Extensions.Configuration
通过 ConfigurationBuilder 类来加载配置,然后再输出,
他可以加载的配置有:
1、键值对的
2、字符串数组(比如命令行参数 args)
3、Json文件
ConfigurationBuilder 的配置,以最后一个有值为准。
核心代码示例:
JSON文件: { "DoorSiteUrl": "2", "OASiteUrl": "1", "Data": { "DefaultConnection": { "ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;" } } } //加载配置 ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddInMemoryCollection(defaultConfig);//这是一个字典类型的键值对 builder.AddJsonFile("Sites.json"); builder.AddCommandLine(cmdArgs); //这是一个string数组 //生成 IConfigurationRoot config = builder.Build(); //读取配置 config["DoorSiteUrl"] config["OASiteUrl"] config["Data:DefaultConnection:ConnectionString"] //读取配置-直接生成对象 UrlModel model = new UrlModel(); config.Bind(model);
完整代码示例:
using Microsoft.Extensions.Configuration; using System; using System.Collections.Generic; namespace ConfigConsole { class Program { static void Main(string[] args) { string[] cmdArgs = new string[] { "DoorSiteUrl=http://twww.sqber.com", "OASiteUrl=http://toa.sqber.com" }; UrlModel urlModel = GetUrlModel(new string[] { }); Console.WriteLine(urlModel.ToString()); urlModel = GetUrlModel(cmdArgs); Console.WriteLine(urlModel.ToString()); Console.WriteLine("Hello World!"); } static UrlModel GetUrlModel(string[] cmdArgs) { Dictionary<string, string> defaultConfig = new Dictionary<string, string>() { {"DoorSiteUrl","http://www.sqber.com" }, {"OASiteUrl","http://oa.sqber.com" }, }; ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddInMemoryCollection(defaultConfig); builder.AddJsonFile("Sites.json"); builder.AddCommandLine(cmdArgs); //ConfigurationBuilder 的配置,以最后一个有值为准 IConfigurationRoot config = builder.Build(); UrlModel model = new UrlModel(); config.Bind(model); return model; //return new UrlModel //{ // DoorSiteUrl = config["DoorSiteUrl"], // OASiteUrl = config["OASiteUrl"] //}; } } public class UrlModel { public string DoorSiteUrl { get; set; } public string OASiteUrl { get; set; } public override string ToString() { return $"doorSiteUrl:{DoorSiteUrl},OASiteUrl:{OASiteUrl}"; } } }
控制台运行
控制台并没有生成exe文件,执行需要使用下面命令:
dotnet ConfigConsole.dll
或写个bat文件
start dotnet ConfigConsole.dll
扫码分享
版权说明
作者:SQBER
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
{0}
{5}
{1}
{2}回复
{4}
*昵称:
*邮箱:
个人站点:
*想说的话: