.net core2.0之将json文件并转化成类注入控制器使用

(1):首先,新建一个.net core web应用程序,然后新建文件夹JsonFile,并在JsonFile文件夹中新建class.json文件.


(2):右键class.json,将赋值到输出目录设置为:始终复制(非常重要).


(3): 然后在class.json中添加内容:

{
  "ClassNum": 1,
  "ClassName": "高一一班",
  "Students": [
    {
      "name": "奥巴马",
      "age": 50
    },
    {
      "name": "普京",
      "age": 55
    }
  ]
}

(4):右键项目依赖项:管理GuGet程序包,将Microsoft.Extensions.Configuration程序集加入到项目中


(5):在Models文件夹中添加类Class,并填写如下代码:

namespace CoreDemo.Models
{
    public class Class
    {
        public int ClassNum { get; set; }
        public string ClassName { get; set; }
        public List<Student> Students { get; set; }
    }
    public class Student
    {
        public string name { get; set; }
        public int age { get; set; }
    }
}

(6):更新Startup.cs脚本,更新函数ConfigureServices:

public void ConfigureServices(IServiceCollection services)
       {
           var classSetting = JsonConvert.DeserializeObject<Class>(File.ReadAllText("JsonFile/class.json"));
           services.AddSingleton(classSetting);//全局注入
           services.AddMvc();
       }

(7):更新Home控制器,将配置类注入进来并使用:

public class HomeController : Controller
   {
       private readonly Class _classSetting;
       public HomeController(Class classSetting)
       {
           _classSetting = classSetting;
       }
 
       public IActionResult Index()
       {
           return Content("班级编号="+ _classSetting.ClassNum + ",班级名称="+ _classSetting.ClassName + "\r"
               +"学生名称="+ _classSetting.Students[0].name+",学生年纪="+ _classSetting.Students[0].age
           );
       }
   }

(8):运行项目,查看运行结果,成功:


总结:如果将配置文件一个一个读取的话是可行的,只是太麻烦,如果其他地方也需要用到的话又需要再次加载读取,浪费开发效率与运行效率.直接以类的方式加载并注入,可以让它在每个地方运行,消耗最少,效率最高.

(提醒:如果代码中发现报错的情况是因为有些程序集没有引用,直接将鼠标移动到报错的地方然后就可以将程序集引用到项目中了)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值