public static void Main()
var c = new ContainerBuilder();
c.RegisterModule(new MyModule());
using (var scope = Container.BeginLifetimeScope())
var logger = scope.Resolve<ILogger>();
var bl = new BizLogic(logger);
private static IContainer Container {get;set;}
internal class MyModule : Module
protected override void Load(ContainerBuilder builder)
builder.RegisterType<FileLogger>().As<ILogger>();
public BizLogic(ILogger logger)
public void DoSomething()
_logger.LogMessage("Now is the time for all good men to come to the aid of their country.");
internal interface ILogger
void LogMessage(string message);
internal class Logger : ILogger
public void LogMessage(string message)
Console.WriteLine("Standard Logger: " + message);
internal class FileLogger : ILogger
public void LogMessage(string message)
Console.WriteLine("File Logger: " + message);