Created
December 13, 2023 16:23
-
-
Save manoj-choudhari-git/6094bd9c88ee79cdc66d546a9f8b34c6 to your computer and use it in GitHub Desktop.
.NET 8 Keyed Services Demo - An Example - One Interface - Multiple Implementations
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public enum ReminderType | |
{ | |
Email, | |
Sms, | |
PushNotifications | |
} | |
//--------------------------------------------------------------------------------- | |
// One Interface - Three Implementations | |
//--------------------------------------------------------------------------------- | |
public interface IReminderService | |
{ | |
void SendReminder(); | |
} | |
//--------------------------------------------------------------------------------- | |
// Email Reminder Service | |
//--------------------------------------------------------------------------------- | |
public class EmailReminderService : IReminderService | |
{ | |
private readonly ILogger<EmailReminderService> logger; | |
public EmailReminderService(ILogger<EmailReminderService> logger) | |
{ | |
this.logger = logger; | |
} | |
public void SendReminder() | |
{ | |
this.logger.LogWarning("EmailReminderService - Send Reminder - Executed"); | |
} | |
} | |
//--------------------------------------------------------------------------------- | |
// SMS Reminder Service | |
//--------------------------------------------------------------------------------- | |
public class SmsReminderService : IReminderService | |
{ | |
private readonly ILogger<SmsReminderService> logger; | |
public SmsReminderService(ILogger<SmsReminderService> logger) | |
{ | |
this.logger = logger; | |
} | |
public void SendReminder() | |
{ | |
this.logger.LogWarning("SmsReminderService - Send Reminder - Executed"); | |
} | |
} | |
//--------------------------------------------------------------------------------- | |
// Push Notification Reminder Service | |
//--------------------------------------------------------------------------------- | |
public class PushNotificationReminderService : IReminderService | |
{ | |
private readonly ILogger<PushNotificationReminderService> logger; | |
public PushNotificationReminderService(ILogger<PushNotificationReminderService> logger) | |
{ | |
this.logger = logger; | |
} | |
public void SendReminder() | |
{ | |
this.logger.LogWarning("PushNotificationReminderService - Send Reminder - Executed"); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment