ASP.NET Core之由配置系统与创建app所想到的
Posted JohnYang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET Core之由配置系统与创建app所想到的相关的知识,希望对你有一定的参考价值。
先看文件配置的代码:
ConfigurationBuilder configBuilder=new ConfigurationBuiler();//典型的创建者模式
configBuilder.AddJsonFile("config.json",option:false,reloadChange:false);//添加json配置文件,属于是创建者模式环节中的“配置创建者条件”的环节
IconfigurationRoot config=configBuilder.Build();//创建了配置root,“创建了对象”
string proxyAddress=config.GetSection("proxy:address").Value;//获取配置值
再看asp.net core 的Main():
public static void Main(string[] args)
var builder = WebApplication.CreateBuilder(args);//典型的创建者模式
// Add services to the container.
//----------------属于是创建者模式环节中的“配置创建者条件”的环节,该环节应用了DI技术--------------------------
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
//------------------------------------------------------------------------------------
var app = builder.Build();//正式创建了对象
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
app.UseSwagger();
app.UseSwaggerUI();
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
从以上两个代码,可以看出,它们其实都属于创建者模式,该模式下,首先要规定创建者被创建前的一系列“创建条件”,然后再Build()
,进行创建。
以上代码不同的是,后者使用了DI技术,将“创建条件”,诉诸于依赖注入。
#####
愿你一寸一寸地攻城略地,一点一点地焕然一新
#####
[Asp.Net Core]Asp.Net Core与配置系统的集成
Asp.net Core默认添加的配置提供者
1)加载现有的Iconfiguration
2)加载项目根目录下的appsettings.json
3)加载项目根目录下的appsettings.Enviroment
4)当程序运行在开发环境下,程序会加载“用户机密”配置
5)加载环境变量中的配置
6)加载命令行
配置的环境问题
- Why?开发环境,测试环境,生产环境需要进行不同的配置
- 运行环境:Asp.NET Core 会从环境变量中读取名字
ASP.NETCORE_ENVIRONMENT的值。
推荐值:
Development(开发环境),Staging(测试环境),Production(生产环境) - 读取方法:app.Enviroment.EnvironmentName,app.Environment.IsDevelopment()….
- 在Windows和VS(推荐开发时用)中设置环境变量的方法。
演示代码
[ApiController]
[Route("[controller]")]
public class TestController : Controller
[HttpGet]
public string Demo()
return Environment.GetEnvironmentVariable("dezai");
1.系统环境变量
修改环境变量时,因为变量是与进程相关。重新运行运用程序经常并没有改变读取环境变量不会是最新的,需要重新启动VS。
2. 项目调试配置
只需要重新启动程序
3.启动程序读取环境变量
Console.WriteLine(app.Environment.EnvironmentName);
Console.WriteLine(app.Environment.IsDevelopment());
Console.WriteLine(app.Environment.IsProduction());
4.Controller读取当前的配置
Environment 属于IWebHostEnvironment类型,所以只需要在控制器中注入IWebHostEnvironment。
private readonly IWebHostEnvironment webEnv;
public TestController(IWebHostEnvironment webEnv)
this.webEnv = webEnv;
[HttpGet]
public string Demo1()
return webEnv.EnvironmentName;
以上是关于ASP.NET Core之由配置系统与创建app所想到的的主要内容,如果未能解决你的问题,请参考以下文章
[Asp.Net Core]Asp.Net Core与配置系统的集成
[Asp.Net Core]Asp.Net Core与配置系统的集成
[Asp.Net Core]Asp.Net Core与配置系统的集成
在 Asp.Net Core App 中访问 Web.config 设置?