1. 程式人生 > >.net core2.0添加json文件並轉化成類註入控制器使用

.net core2.0添加json文件並轉化成類註入控制器使用

serialize don 程序 發現 tex mod onf -s 既然

  上一篇,我們介紹了如何讀取自定義的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):運行項目,查看運行結果,成功:

技術分享圖片

總結:如果將配置文件一個一個讀取的話是可行的,只是太麻煩,如果其他地方也需要用到的話又需要再次加載讀取,浪費開發效率與運行效率.直接以類的方式加載並註入,可以讓它在每個地方運行,消耗最少,效率最高.

(提醒:如果代碼中發現報錯的情況是因為有些程序集沒有引用,直接將鼠標移動到報錯的地方然後就可以將程序集引用到項目中了)

.net core2.0添加json文件並轉化成類註入控制器使用