ASP.NET Core轻松入门Bind读取配置文件到C#实例
2017-12-12 21:18
1196 查看
首先新建一个ASP.NET Core空项目,命名为BindReader
然后 向项目中添加一个名为appsettings.json的json文件,为什么叫appsettings呢? 打开Program.cs
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
代码中的IWebHost在启动时,具有自动加载appsettings.json的特性,所以命名成这个就不用特意地加载了。
然后再appsetting.json中写入数据,数据如下:
{
"Name": "pragram language",
"Items": [
{
"Language": "C#",
"Tool": "visual studio"
},
{
"Language": "JAVA",
"Tool": "Elcipse"
}
]
}
在项目中添加一个Class的类,根据该json文件的结构,创建Clsaa类中的内容,注意Class中的字段名称和Json中的字段名称必须要个匹配,一一对应。
Claa类中的代码如下:
public class Class
{
public String Name { get; set; }
public List<Item> Items { get; set; }
}
public class Item
{
public string Language { get; set; }
public string Tool { get; set; }
}
可以看到字段与Json内的数据时一一对应的。
打开startup.cs文件
修改startup.cs的构造函数并添加Connection属性
public IConfiguration Configuration { get; set; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
实例化一个Class类
var myClass = new Class();
通过connection将配置文件中的数据来绑定Class实例
Configuration.Bind(myClass);
数据展现
Console.WriteLine($"name:{myClass.Name}");
Console.WriteLine();
for (int i = 0; i < myClass.Items.Count; i++)
{
await context.Response.WriteAsync($"language:{myClass.Items[i].Language}");
await context.Response.WriteAsync($"tool:{myClass.Items[i].Tool}");
}
总体的startup.cs中的代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace BindReader
{
public class Startup
{
public IConfiguration Configuration { get; set; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services)
{
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.Run(async (context) =>
{
//var con = new ConfigurationBuilder().AddJsonFile("appsettings.json");
//Configuration = con.Build();
var myClass = new Class();
Configuration.Bind(myClass);
Console.WriteLine($"name:{myClass.Name}");
Console.WriteLine();
for (int i = 0; i < myClass.Items.Count; i++)
{
await context.Response.WriteAsync($"language:{myClass.Items[i].Language}");
await context.Response.WriteAsync($"tool:{myClass.Items[i].Tool}");
b171
}
await context.Response.WriteAsync("Hello World!");
});
}
}
}
以上完整github项目代码地址:https://github.com/liuzhenyulive/BindReader
有任何疑问可以在评论区留言。
然后 向项目中添加一个名为appsettings.json的json文件,为什么叫appsettings呢? 打开Program.cs
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
代码中的IWebHost在启动时,具有自动加载appsettings.json的特性,所以命名成这个就不用特意地加载了。
然后再appsetting.json中写入数据,数据如下:
{
"Name": "pragram language",
"Items": [
{
"Language": "C#",
"Tool": "visual studio"
},
{
"Language": "JAVA",
"Tool": "Elcipse"
}
]
}
在项目中添加一个Class的类,根据该json文件的结构,创建Clsaa类中的内容,注意Class中的字段名称和Json中的字段名称必须要个匹配,一一对应。
Claa类中的代码如下:
public class Class
{
public String Name { get; set; }
public List<Item> Items { get; set; }
}
public class Item
{
public string Language { get; set; }
public string Tool { get; set; }
}
可以看到字段与Json内的数据时一一对应的。
打开startup.cs文件
修改startup.cs的构造函数并添加Connection属性
public IConfiguration Configuration { get; set; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
实例化一个Class类
var myClass = new Class();
通过connection将配置文件中的数据来绑定Class实例
Configuration.Bind(myClass);
数据展现
Console.WriteLine($"name:{myClass.Name}");
Console.WriteLine();
for (int i = 0; i < myClass.Items.Count; i++)
{
await context.Response.WriteAsync($"language:{myClass.Items[i].Language}");
await context.Response.WriteAsync($"tool:{myClass.Items[i].Tool}");
}
总体的startup.cs中的代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace BindReader
{
public class Startup
{
public IConfiguration Configuration { get; set; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services)
{
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.Run(async (context) =>
{
//var con = new ConfigurationBuilder().AddJsonFile("appsettings.json");
//Configuration = con.Build();
var myClass = new Class();
Configuration.Bind(myClass);
Console.WriteLine($"name:{myClass.Name}");
Console.WriteLine();
for (int i = 0; i < myClass.Items.Count; i++)
{
await context.Response.WriteAsync($"language:{myClass.Items[i].Language}");
await context.Response.WriteAsync($"tool:{myClass.Items[i].Tool}");
b171
}
await context.Response.WriteAsync("Hello World!");
});
}
}
}
以上完整github项目代码地址:https://github.com/liuzhenyulive/BindReader
有任何疑问可以在评论区留言。
相关文章推荐
- ASP.NET Core轻松入门Bind读取配置文件到C#实例
- 菜鸟入门【ASP.NET Core】5:命令行配置、Json文件配置、Bind读取配置到C#实例、在Core Mvc中使用Options
- 【ASP.NET Core快速入门】(五)命令行配置、Json文件配置、Bind读取配置到C#实例、在Core Mvc中使用Options
- asp.net core-6.Bind读取配置文件到C#实例中
- asp.net core轻松入门之MVC中Options读取配置文件
- asp.net core轻松入门之MVC中Options读取配置文件
- ASP.NET CORE入门之读取Json配置文件
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- ASP.NET CORE入门之读取Json配置文件
- Asp.Net Core轻松入门之WebHost的配置
- 【无私分享:ASP.NET CORE 项目实战(第八章)】读取配置文件(二) 读取自定义配置文件
- ASP.NET Core实现类库项目读取配置文件
- 【无私分享:ASP.NET CORE 项目实战(第六章)】读取配置文件(一) appsettings.json
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- Asp.net Core中使用Redis 来保存Session, 读取配置文件
- 【无私分享:ASP.NET CORE 项目实战(第六章)】读取配置文件(一) appsettings.json
- 2.2Bind建立配置文件和实体的映射「深入浅出ASP.NET Core系列」
- ASP .NET CORE 读取配置文件的方法
- ASP.NET Core实现类库项目读取配置文件
- ASP.NET、WinForm、C# - 配置文件信息读取 [ Web.config || Appconfig ]