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 的配置即可,解耦控制器的代码