net core 依赖注入

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

原文地址:https://www.cnblogs.com/wskxy/p/11369553.html