目录
应用配置
读取配置
绑定配置模型对象方式
通过配置文件名读取配置
多环境
方法多环境
Startup多环境
日志
使用NLog
下载
配置
修改配置
使用
应用配置信息一般存在appsettings.json文件中
添加一些配置信息
{
"str": "aaa",
"People": {
"Name": "haha",
"Age": 18
}
}
在Startup中,通过依赖注入给IConfiguration注入服务
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
var str = Configuration["str"];
var name = Configuration["People:Name"];
新建模型
public class People
{
public string Name { get; set; }
public int Age { get; set; }
}
将配置信息绑定到People对象p中
var p = new People();
Configuration.Bind("People", p);
另外一种绑定模型的方式,通过添加服务的方式
在Startup的ConfigureServices方法,配置服务
services.Configure(Configuration.GetSection("People"));
然后在其他地方就可以通过注入方式获取了
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IOptions peopleOptions)
{
string name = peopleOptions.Value.Name;
}
上面是在controller的注入方式,下面介绍view的注入方式
通过@inject注入
@using Microsoft.Extensions.Options
@inject IOptions peopleOptions
使用
@peopleOptions.Value.Name
var config = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
var str = config["str"];
可以在Properties的launchSetting.json文件中修改配置
将Development修改为Demo
然后在Startup中添加一个新的方法,与ConfigureServices类型的,起名为ConfigureDemoServices
public void ConfigureDemoServices(IServiceCollection services)
{
}
这样我们使用IIS Express启动时,则执行ConfigureDemoServices方法
同样的,我们也可以模仿上面的,添加类似Configure方法的ConfigureDemo
定义一个StartuoDemo的类
public class StartupDemo
{
public IConfiguration Configuration { get; }
public StartupDemo(IConfiguration configuration)
{
Configuration = configuration;
}
}
修改Program的CreateHostBuilder方法
让其自动寻找指定程序集下对于的Startup类
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup(System.Reflection.Assembly.GetExecutingAssembly().FullName);
//webBuilder.UseStartup();
});
.NET Core 的日志配置默认只是添加到Console和Debug中
官网地址: https://nlog-project.org/
GitHub地址:https://github.com/NLog/NLog
在NuGet下载NLog和NLog.Web.AspNetCore
添加一个配置文件nlog.config
参考官方文档:https://github.com/NLog/NLog/wiki/Configuration-file
修改Program文件
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
}).UseNLog();
public HomeController(ILogger logger)
{
logger.LogInformation("aaaa");
}
日志
在项目下的bin\Debug\netcoreapp3.1\logs