ASP.NET Core轻松入门Bind读取配置文件到C#实例-阿里云开发者社区

开发者社区> 码农阿宇> 正文

ASP.NET Core轻松入门Bind读取配置文件到C#实例

简介: 首先新建一个ASP.NET Core空项目,命名为BindReader 然后 向项目中添加一个名为appsettings.json的json文件,为什么叫appsettings呢?  打开Program.
+关注继续查看

首先新建一个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}");
                }
                await context.Response.WriteAsync("Hello World!");
            });
        }
    }
}

以上完整github项目代码地址:https://github.com/liuzhenyulive/BindReader

 

有任何疑问可以在评论区留言。


 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PHPMailer安装及简单实例(PHP发送邮件不用Smtp类)
PHPMailer安装及简单实例 [ 2006-11-29 14:37:49 | Author: songzi ] Font Size: Large | Medium | Small PHPMailer是一个用PHP写的用于邮件发送的类,有点像Jmail,相信很多新手和我一样,开始很茫然,不知道怎么安装,查找了一下,发现这方面的资料真的少之又少,一个文章被转载千百次,一搜索全是同一个内容,真不知道说什么好,其实打开安装里的readme就一目了然了,闲话少说,安装其实很简单。
1299 0
ASP.NET CORE入门之读取Json配置文件
首先新建一.net core控制台项目,命名为jsonReader 然后选中引用,选择NuGet包管理器,点击浏览引入mircosoft.aspnetcore.all并安装 选中解决方案,填加,新建项目,添加Json文件,命名为test.
1025 0
VB6.0 读取CSV文件
最近做了一个Upload文件的需求,文件的格式为CSV,读取文件的方法整理了一下,如下: 1、先写了一个读取CSV文件的Function: 1 '读取CSV文件 2 '假设传入的参数strFile=C:\Documents and Settings\Administrator\桌面\TPA_Report1 - 副本.
1270 0
Asp.Net Core轻松入门之WebHost的配置
在本篇文章中,我来讲一讲如何利用WebHost来加载配置文件和设置启动的Url 在前面的文章中讲过,ASP.Net Core应用程序会自动加载appsettings.json中的配置文件,那么如果配置文件不是写在appsettings.json中的如何来加载呢? 本文介绍利用WebHost从json文件加载和从命令行加载两种方式。
1186 0
.NET加密配置文件connectionStrings节点
具体的可以参考petshop源码程序。 加密前: View Code   加密后: ...
1149 0
Spring Boot读取配置文件的几种方式
Spring Boot获取文件总的来说有三种方式,分别是@Value注解,@ConfigurationProperties注解和Environment接口。这三种注解可以配合着@PropertySource来使用,@PropertySource主要是用来指定具体的配置文件。
515 0
Json.Net系列教程 1.Json.Net介绍及实例
原文 Json.Net系列教程 1.Json.Net介绍及实例 本系列教程假设读者已经对Json有一定的了解,关于Json在这里不多说.本系列教程希望能对读者开发涉及到Json的.Net项目有一定的帮 助.本系列教程是根据官方文档资料和自己项目应用汇总而成.如果觉得本系列对你有用,望多多关注.本人还只是个未毕业的学生,水平有限,尽请指正. 一.Json.Net有什么用?   Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。
1106 0
+关注
码农阿宇
沉迷.Net,无法自拔
74
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载