Before we proceed, you may be surprised to know that we already have DI in the sample project that we have been working with in earlier chapters. Take a look at the Startup.cs
file in your web project
folder. You should see the following code near the end of the ConfigureServices()
method:
services.AddTransient<IEmailSender, AuthMessageSender>(); services.AddTransient<ISmsSender, AuthMessageSender>();
This code adds a couple of instances of the AuthMessageSender
service class, which implements both the IEmailSender
and ISmsSender
interfaces. The code for this class and its interfaces can be found in the Services
subfolder of your project, as shown in the following screenshot:
The call to AddTransient
ensures that the object is properly created and destroyed, so that you don't have to worry about instantiation and disposal. There are multiple ways to indicate what kind of life cycle you want. Life cycle management is an integral part of using...