Skip to content

Instantly share code, notes, and snippets.

@manoj-choudhari-git
Created December 13, 2023 16:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save manoj-choudhari-git/6094bd9c88ee79cdc66d546a9f8b34c6 to your computer and use it in GitHub Desktop.
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
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