public static void Main()
var container = new Container();
container.UseInstance(new LoggerFactory());
var loggerFactoryMethod = typeof(LoggerFactory).GetMethod("CreateLogger");
container.Register(typeof(ILogger<>), made: Made.Of(
req => loggerFactoryMethod.MakeGenericMethod(req.Parent.ImplementationType),
ServiceInfo.Of<LoggerFactory>()));
container.Register<MyService>();
container.Resolve<MyService>();
public MyService(ILogger<MyService> logger) { logger.Log("Hey!"); }
class ConsoleLogger<T> : ILogger<T>
public void Log(string msg) { Console.WriteLine(typeof(T) + ": " + msg); }
public ILogger<T> CreateLogger<T>() { return new ConsoleLogger<T>(); }