public static void Main()
var container = new Container();
container.Register<ILogger, NullLogger>();
const string mainConfigName = "foo";
container.Register<IService, Service>();
container.Register<ICommand, Command>();
container.RegisterInstance(mainConfigName, serviceKey: nameof(mainConfigName));
container.Register<MainDB>(Reuse.Transient, Made.Of(() => new MainDB(Arg.Of<string>(nameof(mainConfigName)), Arg.Of<ILogger>())));
container.RegisterDelegate<Func<MainDB>, MainDB.Connector>(f => f.Invoke);
var connector = container.Resolve<MainDB.Connector>();
Console.WriteLine($"Hello {connector()}");
var regs = container.GetServiceRegistrations();
foreach (var reg in regs)
public interface IService {}
public class Service : IService {}
public interface ICommand {}
public class Command: ICommand { public Command(IService svc, ILogger log){} }
public delegate MainDB Connector();
public MainDB(string cfgName, ILogger logger)
public class NullLogger : ILogger