Asp.Net Core 进阶(一) —— 读取appsettings.json
我们以前在Asp.Net MVC中使用?System.Configuration.ConfigurationManager 来读取web.config文件。但是Asp.Net Core MVC已经没有web.config文件了,它的配置信息一般写在appsettings.json当中,那么我们怎么读取该文件呢? 在Asp.Net Core MVC中使用 Microsoft.Extensions.Options.ConfigurationExtensions 包来读取appsettings.json。具体的操作如下: 使用NuGet添加??Microsoft.Extensions.Options.ConfigurationExtensions? 包到我们的项目当中,然后在appsettings.json中添加我们自己的一些配置信息 { "Logging": { "LogLevel": { "Default": "Warning" } },"AllowedHosts": "*","ConnectionStrings": { "OpenAuthDBContext": "Data Source=localhost;Initial Catalog=dbname;User=sa;Password=123" },"AppSetting": { "SSOPassport": "http://localhost:52789","Version": "1.0",//如果为demo,则屏蔽Post请求 "DbType": "SqlServer",//数据库类型:SqlServer/MySql "MessageUrl": "http://localhot:23124",//短信平台接口 "MessageType": "CAD71325-0097-4052-9183-56F04EED0B31" //短信类型ID } } 然后我们新建一个文件AppSetting /// <summary> /// 配置项 /// </summary> public class AppSetting { public AppSetting() { SSOPassport = "http://localhost:52789"; Version = ""; DbType = Define.DBTYPE_SQLSERVER; } /// <summary> /// SSO地址 /// </summary> public string SSOPassport { get; set; } /// <summary> /// 版本信息 /// 如果为demo,则屏蔽Post请求 /// </summary> public string Version { get; set; } /// <summary> /// 数据库类型 SqlServer、MySql /// </summary> public string DbType { get; set; } /// <summary> /// 短信平台接口Url /// </summary> public string MessageUrl { get; set; } /// <summary> /// 短信类型 /// </summary> public string MessageType { get; set; } } 接着在Startup.cs文件的ConfigureServices方法中添加 services.AddOptions(); //映射配置文件 services.Configure<AppSetting>(Configuration.GetSection("AppSetting")); 最后就可以在我们的Controller中使用了,通过IOption<AppSetting>来读取。 private readonly IOptions<AppSetting> _setting; public LoginController(IAuth authUtil,IOptions<AppSetting> setting) { _authUtil = authUtil; _setting = setting; } public string GetCaptcha(string phone) { string messageUrl = _setting.Value.MessageUrl; string messageType = _setting.Value.MessageType; if (_authUtil.GetCaptcha(phone,messageUrl,messageType)) { return JsonHelper.Instance.Serialize(new { Code = 200,Message = "" }); } return JsonHelper.Instance.Serialize(new { Code = 500,Message = "验证码获取失败,请稍后重试!" }); } 需要注意的是,通过IOption的方式不能在Startup.cs中读取appsettings.json文件,在Startup.cs中读取appsettings.json文件需要使用Microsoft.Extensions.Configuration的IConfiguration。 var dbType = ((ConfigurationSection) Configuration.GetSection("AppSetting:DbType")).Value; ?或者使用 var v = Configuration["ASPNETCORE_ENVIRONMENT"]; var d = Configuration["AppSetting:MessageUrl"]; ?针对格式为下面的json,我么可以通过索引来获取 { "Message": { "Message1": { "Name": "" },"Message2": { "Name": "" } } } _configuration["Message:0:Name"] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 两个ASP.NET站点共享应用程序文件但具有不同的web.config
- 如何不缓存ASP.NET用户控件?
- ASP.Net/C#将NameValueCollection转换为IDictionary?
- asp-classic – 将断开连接的记录集插入字典对象?
- ASP.NET Forms身份验证和持久身份验证Cookie安全性
- asp.net-mvc-4 – 使用ELMAH和ajax在ASP.Net MVC 4中的Cont
- 在asp.net mvc中的RedirectToAction用法
- asp.net-core – 使用dotnet pack包含所有依赖项
- asp.net-mvc – 如何在Controller中使用依赖注入
- asp.net-mvc – ASP.net身份在删除外部帐户后停止分发外部C
- asp.net – 是否有一个简单的方法来呈现具有Micr
- asp.net-mvc-3 – 如何让IIS Express使用64位第三
- asp.net-mvc – Asp.net MVC 3 RC – Razor Vali
- 单元测试 – 使用HttpRequestMessage对Azure功能
- 让 .NET 轻松构建中间件模式代码
- ASP.NET MVC 3:添加控制器时自动生成视图(无实体
- asp.net – nhibernate死锁
- 校园邮政快递查询系统基于B/S模式下的asp系统
- asp.net-mvc – 如何在ASP.NET MVC路由中使用带有
- ASP.NET MVC中使用Bundle打包压缩js和css的方法