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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM