• (十二)Bind读取配置到C#实例


    • 继续上一节的,接下来用Options或者Bind把json文件里的配置转成C#的实体,相互之间映射起来。首先新建一个asp.net core mvc项目OptionsBindSample
    • Startup.cs,这里用依赖注入把Configuration加进来
    • 1         public IConfiguration Configuration { get; set; }
      2 
      3         public Startup(IConfiguration configuration)
      4         {
      5             this.Configuration = configuration;
      6         }
    • 再建立一个Class.cs
    •  1 public class Class
       2         {
       3             public int ClassNo { get; set; }
       4             public string ClassDesc { get; set; }
       5             public List<Student> Students { get; set; }
       6         }
       7 
       8         public class Student
       9         {
      10             public string Name { get; set; }
      11             public string Age { get; set; }
      12         }
    • 再建一个appsettings.json(名称一定要叫这个,因为在Program.cs中WebHost.CreateDefaultBuilder(args)会默认读取appsettings.json文件)
    •  1 {
       2   "ClassNo": "1",
       3   "ClassDesc": "ASP.NET Core 101",
       4   "Students": [
       5     {
       6       "name": "liuxh",
       7       "age": "31"
       8     },
       9     {
      10       "name": "linhj",
      11       "age": "31"
      12     },
      13     {
      14       "name": "liuxy",
      15       "age": "7"
      16 
      17 
      18 
      19     },
      20     {
      21       "name": "liuss",
      22       "age": "1"
      23     }
      24   ]
      25 
      26 }
    • 最后Starup.cs代码是这样的
    •         public IConfiguration Configuration { get; set; }
      
              public Startup(IConfiguration configuration)
              {
                  this.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 myClass = new Class();
                      Configuration.Bind(myClass);//把配置文件的信息和对象映射起来
      
                      await context.Response.WriteAsync($"ClassNo:{myClass.ClassNo}");
                      await context.Response.WriteAsync($"ClassDesc:{myClass.ClassDesc}");
                      await context.Response.WriteAsync($"{myClass.Students.Count} Students");
      
                  }); 
              }
    • 最后启动网站
  • 相关阅读:
    阿里巴巴数据库分库分表的最佳实践
    Tomcat控制台日志乱码解决方案
    区块链:多链体系在提升性能的同时,怎么去保证单链被攻击性问题
    在 CentOS 7 1801 中安装 PostgreSQL-11
    为什么即使现在生意不太好做,还是有一批批的人开始做生意?
    投资十几万可以做点什么生意?
    理发店真是一个暴利行业吗?
    今日头条是怎么盈利的?
    中国都有哪些著名的风投失败的案例?
    基于语音应用的10项最佳实践
  • 原文地址:https://www.cnblogs.com/dotnetHui/p/9058102.html
Copyright © 2020-2023  润新知