public static void Main()
var builder = new ContainerBuilder();
builder.RegisterType<Settings1>().InstancePerMatchingLifetimeScope("1").As<ISettings>();
builder.RegisterType<Settings2>().InstancePerMatchingLifetimeScope("2").As<ISettings>();
var container = builder.Build();
using (var lifetimeScope = container.BeginLifetimeScope("1"))
lifetimeScope.Resolve<ISettings>().Run();
using (var lifetimeScope = container.BeginLifetimeScope("2"))
container.Resolve<ISettings>().Run();
public interface ISettings
Console.WriteLine("Log");
public class Settings1 : ISettings
Console.WriteLine("Settings1");
public class Settings2 : ISettings
Console.WriteLine("Settings2");