.net core2.0之将json文件并转化成类注入控制器使用
程序员文章站
2024-01-29 17:37:16
...
(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):运行项目,查看运行结果,成功:
总结:如果将配置文件一个一个读取的话是可行的,只是太麻烦,如果其他地方也需要用到的话又需要再次加载读取,浪费开发效率与运行效率.直接以类的方式加载并注入,可以让它在每个地方运行,消耗最少,效率最高.
(提醒:如果代码中发现报错的情况是因为有些程序集没有引用,直接将鼠标移动到报错的地方然后就可以将程序集引用到项目中了)