A service is registered as a transient service by default, which means that a new instance of the service is created every time the service is resolved:
var repo = new ServiceRepository(); repo.Register<MyService>().As<IMyService>(); var provider = repo.CreateServiceProvider(); var svc1 = provider.Get<IMyService>(); var svc2 = provider.Get<IMyService>(); var svc3 = provider.Get<IMyService>(); var svc4 = provider.Get<IMyService>(); // svc1, svc2, svc3 and svc4 all reference a different instance