什么是依賴注入
一種實現對象及其合作者或者依賴項之間松散耦合的技術。
以前我們在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"); }