public static void Main()
var builder = new ContainerBuilder();
builder.RegisterType<ConsoleWriter>().As<IWriter>();
builder.RegisterType<MessageDispatcher>().AsSelf();
var container = builder.Build();
using(var scope = container.BeginLifetimeScope()){
var dispatcher = scope.Resolve<MessageDispatcher>();
dispatcher.SendMessage("Some message");
void Write(string message);
public class ConsoleWriter : IWriter
public void Write(string message) {
Console.WriteLine("I'm ConsoleWriter. Printing message: '{0}'", message);
public class MessageDispatcher {
public MessageDispatcher(IWriter writer)
public void SendMessage(string message)