上一篇,我們介紹瞭如何讀取自定義的json文件,數據是讀取出來了,只是處理的時候太麻煩,需要一遍一遍寫,很枯燥.那麼有沒有很好的辦法呢?經過鑽研,辦法有了. 既然一個一個讀取比較麻煩,那麼可以把它放入一個類裡面麽?當然可以.這樣直接註入這個類,讓控制器去讀取,那麼就不需要每次載入它了,一次載入就可以 ...
上一篇,我們介紹瞭如何讀取自定義的json文件,數據是讀取出來了,只是處理的時候太麻煩,需要一遍一遍寫,很枯燥.那麼有沒有很好的辦法呢?經過鑽研,辦法有了.
既然一個一個讀取比較麻煩,那麼可以把它放入一個類裡面麽?當然可以.這樣直接註入這個類,讓控制器去讀取,那麼就不需要每次載入它了,一次載入就可以在任何地方使用了.
由於本文是接這上一篇文章的更新介紹,請先讀取上一篇文章再瀏覽此篇文章
(1):在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; } } }
(2):更新Startup.cs腳本,更新函數ConfigureServices:
public void ConfigureServices(IServiceCollection services) { var classSetting = JsonConvert.DeserializeObject<Class>(File.ReadAllText("JsonFile/class.json")); services.AddSingleton(classSetting);//全局註入 services.AddMvc(); }
(3):更新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 ); } }
(4):運行項目,查看運行結果,成功:
總結:如果將配置文件一個一個讀取的話是可行的,只是太麻煩,如果其他地方也需要用到的話又需要再次載入讀取,浪費開發效率與運行效率.直接以類的方式載入並註入,可以讓它在每個地方運行,消耗最少,效率最高.
(提醒:如果代碼中發現報錯的情況是因為有些程式集沒有引用,直接將滑鼠移動到報錯的地方然後就可以將程式集引用到項目中了)