Skip to content

Support multiple implementations of the same interface #8

@Tim-Maes

Description

@Tim-Maes

Current Bindicate design appears to assume a one-to-one relationship between an interface and its implementation. But in cases where you want to support multiple implementations of the same interface, this assumption doesn't hold.

Example:

services.AddTransient<ILogger, ConsoleLogger>();
services.AddTransient<ILogger, FileLogger>();

public class LoggingService
{
   private readonly IEnumerable<ILogger> _loggers;

   public LoggingService(IEnumerable<ILogger> loggers)
   {
       _loggers = loggers;
   }

   public void Log(string message)
   {
       foreach (var logger in _loggers)
       {
           logger.Log(message);
       }
   }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions