Using the dependency injection system
Dependency injection is a technique for obtaining a class's dependencies. It separates creating a class from using that class.
Assume that we have a UserRegistrationService class that uses SmsService to send a verification SMS, as shown in the following code block:
public class UserRegistrationService
{
private readonly SmsService _smsService;
public UserRegistrationService(SmsService smsService)
{
_smsService = smsService;
}
public async Task RegisterAsync(
string username,
string password,
string phoneNumber)
{
//...save user in the database
...