c# 依賴注入DI以及它的好處


什么是依賴注入

一種實現對象及其合作者或者依賴項之間松散耦合的技術。

以前我們在action中使用對象的時候 可能是通過new 現在我們不需要這樣做了。

我們可以交給其他某個地方幫我們new 我們只管使用這些對象

 

以前我們調用其他類的時候

 public IActionResult Index()
        {
            var tool = new EmailTool();
            tool.Send("xxx");
}

依賴注入的方式的好處

以后我們要增加或者修改其他的發消息方式 我們可以不用管這個的homecontroller

因為我們使用了接口 接口目的就是為了解耦

比如我們加一個PhoneTool 那么我們只加就行了 並且實現這個Itool 然后我們只需要改變Startup的configureservice

 

services.AddSingleton<ITool, PhoneTool>();

 

 

namespace NLogDemo2.Cores
{
    public interface ITool
    {
        void Send(string message);
    }
}


namespace NLogDemo2.Cores
{
    public class EmailTool: ITool
    {
        public void Send(string message)
        {
            Console.Write("發郵件:" + message);
        }
    }
}


 public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton<ITool, EmailTool>();
            services.AddMvc();
        }

 public class HomeController : Controller
    {
        private ITool _tool;
        private ILogger<HomeController> _logger;
        public HomeController(ILogger<HomeController> logger,ITool tool)
        {
            _tool = tool;
            _logger = logger;
        }
public IActionResult Index() { //以前需要new的 //var tool = new EmailTool(); //tool.Send("xxx"); _tool.Send("sdfdsfdsf"); }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM