1.學習一下最簡單的依賴注入
依賴注入可以用來解耦。
舉個簡單的例子,新建一個net core api 項目,添加學生類:
public class Student { public string StudentID { get; set; } public string StudentName { get; set; } }
定義依賴接口
public interface IStudent { Student GetStudent(string id); }
這個接口有一個函數,用來返回指定學號的學生信息
模擬一個服務
/// <summary> /// 提供模擬數據 /// </summary> public class MockStudents : IStudent { private List<Student> _students; public MockStudents() { _students = new List<Student>() { new Student (){StudentID="001",StudentName="kxy"}, new Student (){StudentID="002",StudentName="wzz"} }; } public Student GetStudent(string id) { return _students.Find(x => x.StudentID == id); } }
好了,,現在我們要做到就是如何將這個服務注入到控制器
打開Startup,在 ConfigureServices 中添加
// 依賴注入 services.AddSingleton<IStudent, MockStudents>();
打開需要注入的控制器,ValuesController
private readonly IStudent _student; public ValuesController(IStudent student) { _student = student; } // GET api/values [HttpGet] public ActionResult<IEnumerable<string>> Get() { return new string[] { $"{_student.GetStudent("001").StudentName}" }; }
到這里,一個簡單的依賴注入例子已經完成
這樣做的好處不言而喻,在需要修改注入服務的時候,只需要修改ConfigureServices 的配置即可,解耦控制器的代碼