using System.Collections.Generic;
public interface ISettings
public class GlobalSettings : ISettings
public string Setting1 { get { return "Foo"; } }
public string Setting2 { get { return "Bar"; } }
private readonly ISettings _settings;
public Application(ISettings settings)
Console.WriteLine("Setting1 = '{0}'", _settings.Setting1);
Console.WriteLine("Setting2 = '{0}'", _settings.Setting2);
public static IContainer CompositionRoot()
var builder = new ContainerBuilder();
builder.RegisterType<GlobalSettings>().As<ISettings>().SingleInstance();
builder.RegisterType<Application>();
public static void Main()
CompositionRoot().Resolve<Application>().Run();