在.net core中默认是没有*.config 文件的,配置文件都是*.json。
一、NuGet包管理器引用或者在project.json写入下面这些包
"Microsoft.Extensions.Options.ConfigurationExtensions": "2.1.1",
"Microsoft.Extensions.Configuration.Json": "2.1.1"
二、修改 appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"MyOwn": {
"Name": "wula",
"Age": 12
}
}
三、在Models文件夹中新建一个MyOwnModel类来对应配置信息
public class MyOwnModel
{
public string Name { get; set; }
public string Age { get; set; }
}
四、配置Startup.cs
首先用AddOptions() 初始化注入IOptions<T>,然后Configure<MyOwnModel>则是自动初始化MyOwnModel实例并且映射appSettings里的配置
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
//初始化MyOwnModel实例并且映射appSettings里的配置
services.AddOptions();
services.Configure<MyOwnModel>(Configuration.GetSection("MyOwn"));
}
五、在Controller中使用
public class TestController : Controller
{
private IOptions<MyOwnModel> settings;
public TestController(IOptions<MyOwnModel> settings)
{
this.settings = settings;
}
public IActionResult Test()
{
ViewData["Name"] = this.settings.Value.Name;
ViewData["Age"] = this.settings.Value.Age;
return View();
}
}
---------------------------------------------------------------------------------------------------------------------------
初学的时候找到了上面这种方法,虽然麻烦但是凑活能用所以就记录下来了,实际中后来我是这样读取、保存、使用配置项的,请继续往下看。
一、修改 appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"MyOwn": {
"Name": "Guo",
"Age": 16
},
"OnlyDefault": "onlyDefault"
}
二、在Models文件夹中新建一个MyOwn类来对应配置信息
public class MyOwn
{
public string Name { get; set; }
public string Age { get; set; }
}
三、创建AppsettingsUtility.cs来解析并保存配置项
public class AppsettingsUtility
{
private static MyOwn _myOwn;
public static MyOwn MyOwn { get { return _myOwn; } }
private static string userType;
public static string UserType { get { return userType; } }
/// <summary>
/// 将配置项的值赋值给属性
/// </summary>
/// <param name="configuration"></param>
public void Initial(IConfiguration configuration)
{
MyOwn myOwn = new MyOwn();
//注意:可以使用冒号来获取内层的配置项
myOwn.Name= configuration["MyOwn:Name"];
myOwn.Age = configuration["MyOwn:Age"];
_myOwn = myOwn;
userType = configuration["UserType"];
}
}
四、在Startup.cs中初始化AppsettingsUtility类
public Startup(IConfiguration configuration)
{
Configuration = configuration;
//对AppsettingsUtility进行初始化,注意所传的参数
new AppsettingsUtility().Initial(configuration);
}
五、使用配置项
在控制器或其他类中可以通过AppsettingsUtility类来读取并使用配置项。